Go 语言入门:一些基础知识| 青训营

95 阅读4分钟

此篇文章是我参与 #青训营笔记创作活动 的第3篇笔记

主要是简单记录一下自己在学习Go语言时遇到的一些小要点,

只是个人的一个学习记录,水平不高还望大佬们包容。

0x01 运行go程序

第一个Go程序:

package main
​
import "fmt"func main() {
    fmt.Println("Hello, World!")
}

使用命令生成二进制可执行文件:

# 生成二进制文件
$ go build hello.go# 查看目录的文件
$ ls
hello    hello.go
​
# 运行二进制文件
$ ./hello 
Hello, World!

使用命令直接运行go程序(不生成二进制文件):

$ go run hello.go 
Hello, World!

0x02 Go 语言结构

Go 语言的基础组成有以下几个部分:

  • 包声明

    • package main
    • 第一行代码 package main 定义了包名。你必须在源文件中非注释的第一行指明这个文件属于哪个包,如:package main。package main表示一个可独立执行的程序,每个 Go 应用程序都包含一个名为 main 的包。
  • 引入包

    • import "fmt"
    • 告诉 Go 编译器这个程序需要使用 fmt 包(的函数,或其他元素),fmt 包实现了格式化 IO(输入/输出)的函数。
  • 函数

    • func main(){}
    • func main() 是程序开始执行的函数。main 函数是每一个可执行程序所必须包含的,一般来说都是在启动后第一个执行的函数(如果有 init() 函数则会先执行该函数)
  • 变量

    • Go 语言变量名由字母、数字、下划线组成,其中首个字符不能为数字。

      声明变量的一般形式是使用 var 关键字

    • // 可以以此声明多个变量,格式为 var + 变量名 + type
      var x1,x2 type
      
  • 语句 & 表达式

    • go语言的相关语法先留到后面
    • 此处放个提醒:在go语言中 { 不能够单独放在一行,会报错,这与C、C++等语言不同
    • package main
      ​
      import "fmt"func main()  
      {  // 错误,{ 不能在单独的行上
          fmt.Println("Hello, World!")
      }
      
  • 注释

    • // 为单行注释
      /* 
      为多行注释
      可以注释多行
      */
      

0x03 Go 语言部分基础语法

1. 行分隔符

与C、C++等语言不同,在Go程序中每个语句不需要使用分号;来结尾,Go语言程序和Python相同,每一行代表着一个代码语句

但是如果你实在是想把多个语句写在同一行里,那就需要使用;来进行人为的区分,但在实际开发中我们并不鼓励这种做法


2. 标识符

标识符用来命名变量、类型等程序实体。

与C、C++等语言一样,Go语言的标识符其实是一个或多个字母(AZ和az)数字(0~9)、下划线_组成的序列,而且第一个字符不能是数字,只能是字母或者下划线;同时标识符也不能与go语言的关键字相同。

规则归纳如下:

  • 由 26 个英文字母、0~9、_ 组成;
  • 不能以数字开头
  • Go语言中严格区分大小写;
  • 标识符不能包含空格
  • 不能以系统保留关键字作为标识符

以下是有效的标识符:

x
xyz
XyZ
x100
_xyz
x_1

以下是无效的标识符:

  • 2xy(以数字开头)
  • func(Go 语言的关键字)
  • x+y(出现了下划线以外的符号,运算符是不被允许的)
  • x y (一个标识符中不能包含空格)

同时命名标识符时还需要注意以下几点(应该算是每一种语言都通用的)

  • 标识符的命名要尽量采取简短且有意义
  • 不能和标准库中的包名重复
  • 为变量、函数、常量命名时采用驼峰命名法,例如 stuName、getVal

go语言的关键字一共有25个,如下表所示:

关键字
breakdefaultfuncinterfaceselect
casedefergomapstruct
chanelsegotopackageswitch
constfallthroughifrangetype
continueforimportreturnvar

在Go语言中还存在着一些特殊的标识符,叫做预定义标识符,如下表所示:

预定义标识符
appendboolbytecapclosecomplexcomplex64complex128uint16
copyfalsefloat32float64imagintint8int16uint32
int32int64iotalenmakenewnilpanicuint64
printprintlnrealrecoverstringtrueuintuint8uintptr

预定义标识符一共有 36 个,主要包含Go语言中的基础数据类型和内置函数,这些预定义标识符也不可以当做标识符来使用。


附录

本文参考链接及推荐阅读:

Go 语言基础语法 | 菜鸟教程 (runoob.com)

Go语言基本语法 (biancheng.net)