Golang学习笔记(二):类型、变量、常量

2020-01-28 11:37:04于海丽

如果包含包名, 则应该是 *.T

代表指针类型的符号 '*' 总是和类型放在一起,而不是紧挨着变量名

同样支持指针的指针**T

1.声明

var a, b *int

2.说明

操作符&取变量地址,用*透过指针变量间接访问目标对象
默认值是nil,没有NULL常量
不支持指针运算,不支持‘->'预算福,直接'.'选择符操作指针目标对象成员
可以在unsafe.Pointer和任意类型指针间进行转换
可以将unsafe.Pointer转换为uintptr,然后变相做指针运算,uintptr可以转换为整数

3.示例

package main
import "fmt"

type User struct {
    Id int
    Name string
}
func main(){
    i := 100
    var p *int = &i  //取地址

    println(*p)   //取值


    up := &User{1, "Jack"}
    up.Id = 100  //直接取只针对想成员
    fmt.Println(up)

    u2 := *up  //拷贝对象
    u2.Name = "Tom"
    fmt.Println(up, u2)
}

4.结果:

100
&{100 Jack}
&{100 Jack} {100 Tom}

分组声明

import (
    "fmt"
    "os"
)

const (
    i = 100  //首行必须有常量表达式
    pi = 3.1415
)

var (  //全局变量可用,函数体内不支持
    i int
    pi float32
)