go语言入门记录 | 青训营笔记

51 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 1 天

go语言简介

go语言有许多优势,首先go具有高性能,内置高并发支持;具有丰富的标准库,保证稳定性和兼容性以及性能优化;语法简单易懂,上手快速,开发简单;具有完善的工具链,包括编译、代码格式化,错误检查,包管理,代码补充提示以及单元测试框架等;Go实现静态编译的速度较快,跨平台,有垃圾回收机制等,go原生支持Unicode。因此在Web服务器搭载,高性能分布式领域方面作用很大。

go的安装与环境配置

访问 go.dev/ ,点击 Download ,下载对应平台安装包,配置 go mod proxy,打开终端执行:

$ go env -w GO111MODULE=on
$ go env -w GOPROXY=https://goproxy.cn,direct

下载VS Code,安装Go 插件运行。

go的编写与运行

以hello world程序为例:

package main

import "fmt"

func main() {
    fmt.Println("Hello, 世界")
}

go代码由包组织,每个.go文件都package声明语句开始,然后是import包,最后是程序。main包定义了独立可执行程序,而main函数是整个程序的执行入口。

执行代码的指令为:

go run helloworld.go  执行代码
go build helloworld.go  生成二进制文件

与之前本人学习的C++相比,其在语法上有部分区别:

  • go语言有原生并发特性,通过goroutine 和 channel等实现。
  • go只有for循环这一种循环语句。
  • j = i++非法,而且++和--都只能放在变量名后面,因此--i也非法
  • 变量可以类型自动推导,如s := "" 等效于 var s string

go易错要点

在代码编写过程中遇到的错误提示列举如下:

  • 必须恰当导入需要的包,缺少了必要的包或者导入了不需要的包,程序都无法编译通过"os" imported but not used

  • Go语言不允许使用无用的局部变量,否则会报错xx declared but not used

  • Go语言的大括号强制要求左大括号一定要在语句后面。否则报错 "unexpected semicolon or newline before {

参考文献

juejin.cn/post/718822…

go 语言圣经:books.studygolang.com/gopl-zh/