摘要: 作用域是编译时属性,变量的生命周期是运行时属性。 阅读全文
posted @ 2018-07-11 18:35 一片湖海 阅读(105) 评论(0) 推荐(0) 编辑
摘要: 声明给一个程序实体命名,并且设定其部分或全部属性。有4个主要的声明:变量、常量、类型和函数。一个GO程序文件:以package声明开头,表明文件属于哪个包然后是import声明然后是包级别的类型、变量、常量、函数的声明,不区分顺序 阅读全文
posted @ 2018-07-11 18:34 一片湖海 阅读(80) 评论(0) 推荐(0) 编辑
摘要: 与C语言的指针区别:不可以运算函数返回局部变量的地址是非常安全的 阅读全文
posted @ 2018-07-11 18:34 一片湖海 阅读(82) 评论(0) 推荐(0) 编辑
摘要: type声明定义一个新的命名类型,提供一种方式区分相同底层类型,这样不会混用。例如: w和m不是相同类型,即使底层都是float64。他们不能使用算术表达式比较和合并。一个类的String可以重写例如: 阅读全文
posted @ 2018-07-11 18:33 一片湖海 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 命名规则:Go中函数、变量、常量、类型、语句标签和包的名称都遵循一个规则,开头是一个字母或下划线,后面跟任意字符、数字和下划线,并区分大小写。例如:heapSort和HeapSort是不同名称。关键字:Go有25个关键字,例如:for、type、return......另外还有三十几个内置的预声明的 阅读全文
posted @ 2018-07-11 18:33 一片湖海 阅读(235) 评论(0) 推荐(0) 编辑
摘要: 多重赋值:交换俩个变量的值时很方便,例如:x, y = y, x可赋值性:赋值语句是显式的赋值,但程序中很多地方是隐式赋值,例如函数中的参数,函数中的return。复合类型的字面量表达式:me := []string{"a", "b", "c"} 阅读全文
posted @ 2018-07-11 18:32 一片湖海 阅读(260) 评论(0) 推荐(0) 编辑
摘要: 生命周期指在程序执行过程中变量存在的时间段。Go语言中编译器可以选择使用堆或栈上的空间来分配,而不是基于var或new。Go语言有逃逸识别的机制,但每一次变量逃逸都需要额外的内存分配过程。例如:x逃逸 阅读全文
posted @ 2018-07-11 18:31 一片湖海 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 变量声明的通用形式:var name type = expression其中type和expression,可省略其一。省略type,变量类型由expression决定。省略expression,变量的值是该类型的零值,对于接口和引用类型(slice、指针、map、通道、函数)是nil。对于数组或结 阅读全文
posted @ 2018-07-11 18:30 一片湖海 阅读(132) 评论(0) 推荐(0) 编辑
摘要: 包所在目录名就是包的导入路径,例如:gopl.io/chi/helloworld包存储在$GOPATH/src/gopl.io/ch1/helloworld包给它的声明提供了独立命名空间,例如:image.Decode和utf16.Decodepackage声明前面紧挨着是文档注释,对整个包进行描述 阅读全文
posted @ 2018-07-11 18:29 一片湖海 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 使用new函数是另一种创建变量的方式。创建一个未命名的T类型变量,初始化为T类型的零值,并返回其地址。例如: p := new(int)使用new函数创建变量和取其地址的普通局部变量没有不同,只是不需要引入声明时的一个名字,有语法上的便利。例如: var du int p := &du 和 p := 阅读全文
posted @ 2018-07-11 18:28 一片湖海 阅读(1739) 评论(0) 推荐(0) 编辑