一、介绍

Golang是最年轻的编程语言之一。在这篇文章发布之前,当前稳定的 Golang 版本是 1.17.2。除此之外,它被认为是开发人员中流行的编程语言。它可以在许多平台和环境(抱歉,Java)上构建和运行,与可靠且支持性的内置包捆绑在一起,等等。
我使用 Golang 是因为缺乏语言的魔力,冗长、结构化和干净。在本文中,您将发现应该考虑学习 Golang 的原因。我不打算将 Golang 与其他编程语言进行比较,因为我认为这会烟消云散。所以让我们从语言结构本身开始。

二、语言结构

package main
import ("errors""fmt"
)
type Numbers []int
func (n Numbers) Repeat() error {if n == nil {return errors.New("Numbers is nil")}for i, e := range n {fmt.Printf("%02d => %3d\n", i+1, e)}return nil
}
func main() {if err := Numbers(nil).Repeat(); err != nil {fmt.Println(err)}_ = Numbers([]int{1, 99, 100}).Repeat()
}

我不会涵盖所有语言语法,但上面的代码是 Golang 代码的示例。您现在不需要了解它,但是您可以从package和开始学习代码的结构,import作为代码范围,func main作为入口点,if-else以及for loop作为控制结构之一types,nil,errors, 等。
它是strictly typed,curly braces即使您只编写一行控制结构,也使用as 范围,使用nil而不是null(您在此处保存 1 个字符),并且仅使用分号分隔语句,而不是结束它。综上所述,Golang 的语法对初学者友好,至少我是这么认为的。
你会不会害怕写脏代码语法或任何的,因为不仅Golang有其指导,以更好地写它,它也有它自己的linter,并formatter告诉你什么变量未使用的内置权,而这就是你在做什么会知道。

三、内置支持

Golang 自带工具来构建出色的应用程序。短绒?格式化程序?测试员?你给它起了名字。它还有一个原生garbage collector支持并发和一个操场。除此之外,Golang 也有支持的内置包。您可以编写Web 应用程序、命令行界面应用程序,甚至无需任何第三方模块的Web Assembly 应用程序。但是,如果您想创建一个 Golang 模块怎么办?让我们来谈谈它。

四、模块

您可以在本地和远程轻松创建 Golang 模块。只需执行go mod init ,然后像往常一样编写代码。Golang 模块支持开箱即用的 git,您可以将您的 Golang 模块推送到 git 存储库,然后将其导入到您的代码中。例如,如果您想导入 Postgres 插件或我的数据库凭证轮换器模块,您只需输入 git repo 名称即可导入它。

import ("context""database/sql""log""time""github.com/ClavinJune/rotator""github.com/lib/pq"
)

五、构建结果

二进制!Golang 将您的代码构建为二进制文件。如果您在 Windows 上,它会将您的代码构建为可执行文件,如果您在 Linux 上,它将构建一个 ELF 文件,依此类推。此外,您可以仅使用环境变量来控制构建。假设您在一台 Linux 机器上,但您想为 Windows 创建一个可执行文件,只需告诉它即可。

$ ls
main.go
$ GOOS=windows GOARCH=amd64 go build main.go
$ file main.exe
main.exe: PE32+ executable (console) x86-64 (stripped to external PDB), for MS Windows
$ GOOS=darwin GOARCH=amd64 go build main.go
$ file main
main: Mach-O 64-bit x86_64 executable

您还可以创建一个 Web Assembly 模块:

$ GOOS=js GOARCH=wasm go build -o main.wasm main.go
$ file main.wasm
main.wasm: WebAssembly (wasm) binary module version 0x1 (MVP)

结论

我知道我没有涵盖所有语言规范。以上所有原因对我作为开发人员来说都是非常主观的,您可以通过参考FAQ 页面或规范页面找到您对 Golang 的兴趣。此外,Golang 正在走向第二个版本,该版本将支持通用和更好的错误处理。

Golang语言 零基础入门教程相关推荐

  1. C语言 const 修饰函数参数 - C语言零基础入门教程

    C语言 const 修饰函数参数 - C语言零基础入门教程 目录 一.const 简介 1.const 修饰变量 2.const 修饰指针 3.const 修饰在函数名前面 4.const 修饰在函数 ...

  2. C/C++ _wcsupr_s 函数 – unicode 字符串小写转大写 - C语言零基础入门教程

    目录 一._wcsupr_s 函数简介 二._wcsupr_s 函数实战 三.注意问题 三.猜你喜欢 零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C 语言基础入门 零 ...

  3. C/C++ _wcslwr_s 函数 – unicode 字符串大写转小写 - C语言零基础入门教程

    目录 一._wcslwr_s 函数简介 二._wcslwr_s 函数实战 三.注意问题 四.猜你喜欢 零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C 语言基础入门 零 ...

  4. C/C++ atoi函数 - C语言零基础入门教程

    目录 一.atoi 函数简介 二.atoi 函数函数实战 三.猜你喜欢 零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C 语言基础入门 一.atoi 函数简介 在 st ...

  5. C/C++ getchar函数 - C语言零基础入门教程

    目录 一.getchar 函数简介 1.getchar 原理 2.getchar 函数声明 3.getchar 使用场景 二.getchar 函数使用 三.getchar 函数妙用 四.猜你喜欢 零基 ...

  6. C/C++ putchar函数 - C语言零基础入门教程

    目录 一.前言 二.putchar 函数简介 三.putchar 函数使用 四.猜你喜欢 零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C 语言基础入门 一.前言 C ...

  7. C语言 fclose 函数 - C语言零基础入门教程

    目录 一.fclose 函数简介 二.fclose 函数实战 三.猜你喜欢 零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C 语言基础入门 一.fclose 函数简介 ...

  8. C语言 fopen 函数 - C语言零基础入门教程

    目录 一.fopen 函数简介 二.fopen 函数实战 三.猜你喜欢 零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C 语言基础入门 一.fopen 函数简介 C 语 ...

  9. C语言 assert 函数 - C语言零基础入门教程

    目录 一.assert 函数简介 二.assert 函数使用 三.assert 函数用法总结与注意事项 四.猜你喜欢 零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C ...

  10. C语言 abort 函数 - C语言零基础入门教程

    目录 一.abort 函数简介 二.abort 函数使用 三.猜你喜欢 零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C 语言基础入门 一.abort 函数简介 C 语 ...

最新文章

  1. PHP中Cookie的使用---添加/更新/删除/获取Cookie 及 自动填写该用户的用户名和密码和判断是否第一次登陆...
  2. 玩英雄联盟手游,谁才是新手最喜欢的英雄?无极剑圣还是吗?
  3. js post中文乱码 php,AJAX之POST数据中文乱码如何解决
  4. 数据持化技术的发展演变(SQL、JDBC、mybatis)
  5. 冒烟指数:大数据监测互联网金融风险
  6. opencv基于DNN的人脸检测
  7. 20150324 作业1(升级喽)
  8. java xml转html_如何在Java中将XML文档转换成HTML文档.pdf
  9. bzoj 3316: JC loves Mkk(二分+单调队列)
  10. vs 配置 .pdb
  11. mike21换成计算机名称,[转载]mike21基本介绍
  12. android常用的混淆规则,关于Android混淆的基本做法
  13. 有线网络、无线网络、蜂窝网络、移动网络到底是啥?
  14. 2021年中国图书出版行业经营现状及重点企业对比分析:凤凰传媒优势明显[图]
  15. opencv矩形轮廓查找
  16. STM32CUBEIDE使用说明
  17. Excel三维地图打不开
  18. 2.东软跨境电商数仓项目技术选型
  19. 操作系统中的虚拟内存详解
  20. 个人邮箱|如何群发邮件?3秒教你搞定

热门文章

  1. 高等代数——大学高等代数课程创新教材(丘维声)——2.1笔记+习题
  2. 基于mfc 组态软件_组态软件有哪些?InTouch、WinCC、组态王?
  3. jmeter录制脚本的两种方式
  4. 基于javaEE的医院病历管理系统的设计与实现
  5. Python 遗传算法 Genetic Algorithm
  6. 骑士CMS模版注入+文件包含getshell漏洞复现
  7. SQL审核 | 如何使用 SQLE 进行开发阶段 SQL审核
  8. 小米球 ngrok 安装教程
  9. HTML期末作业,仿b站视频项目模板(HTML+CSS+JS)
  10. 第一节-戴师兄数据分析学习笔记