Go语言学习 三十一 常见环境变量汇总 2019-06-28 00:16:52 Go 暂无评论 2688 次阅读 一 GOPATHGOPATH环境变量指定了工作空间的位置,用于查找go代码,解析import语句。默认指向家目录下的go目录。如Unix下的$HOME/go,或者Windows下的%USERPROFILE%\go(通常是 C:\Users\YourUserName\go)。该变量可以指定多个目录,在Unix下值以冒号:分隔;在Win下以分号;分隔。Go搜索GOPATH中列出的每一个目录以查找源代码 - 阅读全文 -
Go语言学习 三十 其他词法元素 2019-06-28 00:08:29 Go 暂无评论 1037 次阅读 一 标记Go有四种类型的标记:标识(shí)符关键字运算符和分隔符字面量空白符包括空格(U+0020),横向制表符(U+0009),回车符(U+000D)和换行符(U+000A),除非用它们来分隔会结合成单个的标记,否则将被忽略。此外,换行符或EOF(文件结束符)会触发分号的插入。当把输入分解为标记时,可形成有效标记的最长字符序列将作为下一个标记。二 分号大多数语言的标准语法中使用;作为结束符,同 - 阅读全文 -
Go语言学习 二十九 其他语句 2019-06-28 00:03:31 Go 暂无评论 1077 次阅读 一 终止语句终止语句可以阻止当前块中其后出现的所有语句的执行,规则如下:return 或 goto 语句。调用内置函数panic语句列表以终止语句结束的块。if语句,其中:else分支存在,并且两个分支都是终止语句。for语句,其中:没有break语句引用for语句,并且循环条件不存在switch语句,其中:没有break语句引用switch语句存在default子句,并且在每种case下,包括d - 阅读全文 -
Go语言学习 二十八 运算符及运算符的优先级 2019-06-27 23:06:00 Go 暂无评论 1145 次阅读 一 运算符除比较运算符外,对于其他二元运算符,操作数类型必须相同,除非操作涉及移位或无类型常量。除移位操作之外,如果一个操作数是无类型常量而另一个操作数不是,则该常量将隐式转换为另一个操作数的类型。移位表达式中的右操作数必须具有无符号整数类型,或者是由类型为uint的值表示的无类型常量。如果非常量移位表达式的左操作数是无类型常量,则首先将其隐式转换为假设该移位表达式仅保留其左操作数时应该转换成的类 - 阅读全文 -
Go语言学习 二十七 程序的初始化和执行 2019-06-27 22:59:24 Go 暂无评论 1059 次阅读 一 零值不管是通过声明还是调用内置函数new来为变量分配存储时;或者通过复合字面量或make函数创建一个新值时,只要没有显式初始化,变量(或者值)就持有默认值。这种变量(或值)的每一个元素都会被设置为它们对应类型的零值。布尔类型是false,数字类型是0,字符串是"",指针、函数、接口、切片、信道、映射是nil。这种初始化是递归完成的,例如,如果没有指定值,则结构数组的每个元素 - 阅读全文 -
Go语言学习 二十六 内建函数汇总 2019-06-27 02:06:46 Go 暂无评论 1288 次阅读 内建函数都是预声明的,一般情况下可以像普通函数一样使用。它们没有标准的Go类型,因此它们只能出现在调用表达式中,而不能用作函数值。这些函数均可以在builtin包下找到。包builtin只是提供这些预声明函数的文档,并不是真的存在该包中。 - 阅读全文 -
Go语言学习 二十五 Go中的作用域 2019-06-26 01:02:08 Go 暂无评论 849 次阅读 在Go中,声明标识符的作用范围是源文件的范围,其中标识符表示指定的常量、类型、变量,函数、标签或包等。 - 阅读全文 -
Go语言学习 二十四 打印 2019-06-26 00:05:29 Go 暂无评论 1263 次阅读 Go中的格式化打印使用类似C的printf系列的风格,但功能更为丰富和通用。这些函数位于fmt包中,并具有大写名称:fmt.Printf,fmt.Fprintf,fmt.Sprintf 等等。字符串函数(Sprintf等)返回一个字符串,而不是填充提供的缓冲区。 - 阅读全文 -
Go语言学习 二十三 错误处理和运行时恐慌(Panic) 2019-06-18 00:19:20 Go 暂无评论 1257 次阅读 一 错误1.1 error类型按照约定,Go中的错误类型为error,这是一个内建接口,nil值表示没有错误:type error interface { Error() string }我们可以很方便的自定义一个错误类型:package main import ( "fmt" ) func main() { e := MyError{&qu - 阅读全文 -
Go语言学习 二十二 并发 2019-06-16 21:38:48 Go 暂无评论 1226 次阅读 并发是每个编程语言绕不开的一个话题,Go在并发编程方面提供了许多特性,帮助简化并发模型,如轻量级的线程goroutine,信道等,同样也提供了如sync.Mutex等的锁机制。为实现对共享变量的正确访问,Go语言提供了一种特殊的控制方式,即将共享的值通过信道传递。信道是一种带有方向的管道,数据可以在其中流转。在任意一个的时间点,只有一个goroutine能够访问该值,既无需加锁,也无需同步。数据竞 - 阅读全文 -