go学习之路

143 阅读2分钟
  1. go标识符:一个或是多个字母(A~Z和a~z)数字(0~9)、下划线_组成的序列,但是第一个字符必须是字母或下划线而不能是数字。

  2. 标识符(包括常量、变量、类型、函数名、结构字段等)以一个大写字母开头,如:Group1,那么使用这种形式的标识符的对象就可以被外部包的代码所使用(客户端程序需要先导入这个包),这被称为导出(像面向对象语言中的 public);标识符如果以小写字母开头,则对包外是不可见的,但是他们在整个包的内部是可见并且可用的(像面向对象语言中的 protected )。

  3. 需要注意的是 { 不能单独放在一行,所以以下代码在运行时会产生错误:

  
import "fmt"  
  
func main()    
{  // 错误,{ 不能在单独的行上  
    fmt.Println("Hello, World!")  
}
  1. 行分隔符 在 go 程序中,一行代表一个语句结束。每个语句不需要像 C 家族中的其它语言一样以分号 ; 结尾,因为这些工作都将由 go 编译器自动完成。 如果将多个语句写在同一行,则必须使用 ; 人为区分,但在实际开发中我们并不鼓励这种做法。

  2. 打印变量类型用%T

package main  
  
import "fmt"  
  
func main() {  
   var a int = 4 
  
   /* 运算符实例 */  
   fmt.Printf("第 1 行 - a 变量类型为 = %T\n", a );
}

运行结果:

1 行 - a 变量类型为 = int
  1. go 没有三目运算符,所以不支持  ?:  形式的条件判断

  2. 条件判断语句: select 语句类似于 switch 语句,但是select会随机执行一个可运行的case。如果没有case可运行,它将阻塞,直到有case可运行。

  3. 初始化数组

var numbers [5]int
var numbers = [5]int{1, 2, 3, 4, 5}
numbers := [5]int{1, 2, 3, 4, 5}

如果数组长度不确定:

var numbers := [...]int{1, 2, 3, 4, 5}
numbers := [...]int{1, 2, 3, 4, 5}
  1. 结构体
type Books struct {  
   title string  
   author string  
   subject string  
   book_id int  
}
  1. 语言范围
for key, value := range oldMap {
    newMap[key] = value
}
for _, value := range oldMap
  1. 语言切片