go基础语法和常用特性解析 一 | 豆包MarsCode AI刷题

84 阅读3分钟

平台与架构

Go 语言开发团队开发了适用于以下操作系统的编译器:

Linux FreeBSD Mac OS X(也称为 Darwin) 目前有 2 个版本的编译器:Go 原生编译器 gc 和非原生编译器 gccgo,这两款编译器都是在类 Unix 系统下工作 。其中,gc 版本的编译器已经被移植到 Windows 平台上,并集成在主要发行版中,也可以通过安装 MinGW 从而在 Windows 平台下使用 gcc 编译器。这两个编译器都是以单通道的形式工作。

Linux 2.6+:amd64、386 和 arm 架构 Mac OS X(Snow Leopard + Lion):amd64、386 和 arm 架构 Windows 2000+:amd64 和 386 架构 对于非常底层的纯 Go 语言代码或者包而言,在各个操作系统平台上的可移植性是非常强的,只需要将源码拷贝到相应平台上进行编译即可。但如果打算使用 cgo 或者类似文件监控系统的软件,就需要根据实际情况进行相应地修改了。

可用的编译器标记如下:

diff
 代码解读
复制代码
flags:
-I 针对包的目录搜索
-d 打印声明信息
-e 不限制错误打印的个数
-f 打印栈结构
-h 发生错误时进入恐慌(panic)状态
-o 指定输出文件名 // 详见第3.4节
-S 打印产生的汇编代码
-V 打印编译器版本 // 详见第2.3节
-u 禁止使用 unsafe 包中的代码
-w 打印归类后的语法解析树
-x 打印 lex tokens

Go 语言源文件的扩展名是 .go。

注意,当创建目录时,文件夹名称不应该包含空格.

Go 的源文件以 .go 为后缀名存储在计算机中,这些文件名均由小写字母组成,如 scanner.go 。如果文件名由多个部分组成,则使用下划线 _ 对它们进行分隔,文件名不包含空格或其他特殊字符。

一个源文件可以包含任意多行的代码,Go 本身没有对源文件的大小进行限制。

在 Go 代码中的几乎所有东西都有一个名称或标识符。Go 语言是区分大小写的

以下是无效的标识符:

1ab(以数字开头) case(Go 语言的关键字) a+b(运算符是不允许的) _ 本身就是一个特殊的标识符,被称为空白标识符。它可以像其他标识符那样用于变量的声明或赋值(任何类型都可以赋值给它),但任何赋给这个标识符的值都将被抛弃,因此这些值不能在后续的代码中使用,也不可以使用这个标识符作为变量对其它变量进行赋值或运算。

在编码过程中,你可能会遇到没有名称的变量、类型或方法。虽然这不是必须的,但有时候这样做可以极大地增强代码的灵活性,这些变量被统称为匿名变量。

下面列举了 Go 代码中会使用到的 25 个关键字或保留字:

break default func interface select case defer go map struct chan else goto package switch const fall through if range type continue for import return var

Go 语言还有 36 个预定义标识符

append bool byte cap close complex complex64 complex128 uint16 copy false float32 float64 imag int int8 int16 uint32 int32 int64 iota len make new nil panic uint64 print println real recover string true uint uint8 uintptr