slot deposit pulsa slot mahjong slot gacor slot gacor slot gacor resmi slot gacor 2025 slot gacor terpercaya slot gacor 2025 slot gacor hari ini slot gacor hari ini slot gacor hari ini
我们为什么要学习Go
17611538698
webmaster@21cto.com

我们为什么要学习Go

领导力 1 1798 2021-11-29 08:58:12


简介


Golang大概是最年轻的编程语言之一。在这篇文章发表时,它当前稳定的 Golang 版本是 1.17.3。


它已被开发者认为是流行的编程语言。可以在许多平台和环境上构建和运行,有可靠且支持的内置包捆绑在一起等优秀特性。


很多人使用 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
", 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 自带工具来构建出色的应用程序。连接者?格式化?测试员?你可以任意给它起个名字。它还有一个垃圾收集器的本地化支持。除此之外,Golang 还有内置的支持包。可以编写Web 应用程序、命令行界面应用程序,无需任何第三方模块的开发Web Assembly 应用程序。


如果您创建一个 Golang 模块怎么做?下面接着讨论。


模块


我们可以在本地和远程轻松地创建 Golang 模块。只需执行:


go mod init <module-name>

然后像往常一样编写代码。Gol模块支持开箱即用 git,可以将 Golang 模块推送到 git 存储库,然后将其导入到自己的代码中。比如想导入 Postgres 插件或数据库均衡切换器模块,只需输入 git repo 名称即可导入。


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


构建结果


Golang可以直接编译成二进制!


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 正在走向第二个版本,该版本将支持通用和更好的错误处理。

感谢您的阅读!


编译:大雄

作者:Clavin June

来源:https://clavinjune.dev/en/blogs/this-is-why-you-should-learn-golang/

评论