一、介绍

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. 你离距离算法只差零点几毫米!
  2. [Asp.net mvc]OutputCacheAttribute
  3. 【Micropython】发光二极管手工制作炫彩跑马灯
  4. 持续集成篇:jenkins搭建和job运行
  5. python算法与数据结构-单链表
  6. Centos7没有ip地址
  7. php 5.6 mcrypt,mcrypt在Windows / IIS上的PHP 5.6中不起作用
  8. android imageview 获取bitmap缩放大小,android – Imageview缩放方法“centercrop”作为代码...
  9. CAN与CANFD的区别
  10. php简单答题系统,念做个简易php选择题答题系统
  11. python三维可视化
  12. 使用Nhibernate.Tool.Hbm2Net来根据HBML文件生成POJO类的代码
  13. HTML 编辑器-网页制作是用什么来做的?-2
  14. 【Win10电脑更新】Win10电脑更新后小娜Cortana不能登录、咨询和兴趣不能查看的问题怎么解决
  15. 【技巧】搭建企业公司网站的实施步骤有哪些
  16. 十一酸睾酮(TU)行业调研报告 - 市场现状分析与发展前景预测
  17. show和shown区别
  18. 智力题------扔硬币吃苹果
  19. android studio 运行闪退,ubuntu上在androidstudio中启动emulator闪退的解决方法
  20. linux adsl实现原理,ADSL原理以及ADSL系统组成简介

热门文章

  1. 在Win7系统中如何安装PDF虚拟打印机
  2. 阿拉伯文字库 阿拉伯语字库 阿拉伯 字库 变形组合算法
  3. 关于数模中编程的一点愚见
  4. WinQSB的19个子系统简介
  5. Labview自适应屏幕分辨率
  6. Vue基础调色板案例
  7. 约瑟夫环C语言链表实现
  8. Java权限管理系统之数据库设计(一)
  9. labuladong算法小抄pdf下载
  10. StackPanel:栈式面板基础简述