您的当前位置:首页正文

Go学习笔记——第3章 表达式(上)

2024-11-27 来源:个人技术集锦

3.1 保留字

Go语言仅有25个保留关键字。保留关键字不能用作常量、变量、函数名以及结构体字段等标识符

breakdefaultfuncinterface
casedefergomap
chanelsegotopackage
constfallthroughifrange
continueforimportreturn

3.2 运算符


  • 自增
    自增、自减不再是运算符。只能作为独立语句,不能用于表达式

    func main() {
    	a := 1
    	++a // 错误语法: 不能前置	
    	if (a++) > 1 //错误语法 :不能作为表达式
    	a ++ //正确语法
    	println(a)
    }
    
  • 			x :=100  	  p := &x
    memmory 	100			0x1200		
    address		0x1200		0x800 
    
    • 取地址运算符 &用于获取对象的地址
    • 指针运算法 *用于间接引用目标对象
    func main() {
    	x := 10
    	println(x,&x)
    	var p *int = &x // 获取x的地址,保存到指针变量
    	*p += 20		//用指针间接引用,并更新对象
    	println(p, *p)
    	println(x,&x)
    
    }
    
    //运行结果
    10 0xc000056c88
    0xc000056c88 30
    30 0xc000056c88
    

3.3 初始化

  • 规范
    对复合类型(数组、切片、字典、结构体)变量初始化时,有一些语法限制。
    ●初始化表达式必须含类型标签。
    ●左花括号必须在类型尾部,不能另起一行。
    ●多个成员 初始值以逗号分隔。
    ●允许多行,但每行须以逗号或右花括号结束

    正确示范

    type data struct {
    	x int 
    	s string
    }
    
    var a data = data(1, "abc")
    
    b := data {
    	1,
    	"abc",
    }
    
    c := []int{1,2,3}
    d := []int{
    		1,
    		2,
    	}
    e := []int{
    		1,
    		2}
    

    错误示范

    
    var d data = {1, "abc"}  //语法错误 缺乏类型标签
    
    d := data
    { 					// 语法错误 左花括号不能另起一行
    	1,
    	"abc"
    	
    }
    
    d := data{
    	1"abc"			//语法错误 必须以逗号或者右花括号结束。
    }	
    
显示全文