三:go语言变量,常量,枚举,布尔

1:一个包下面可以有多个人源文件

2:import按照书序导入加载(优先执行文件里的init方法)

3:类型别名不能参加正常运算(要同一个类型的前提下才行)

4:申明的变量没有使用,也会报错

5:定义包名 -> 最好文件夹唯独定义包名

6:var a,b,c = 11,21,31  /  a,b,c := 11,21,31  (全部变量必须要有var关键字,局部变脸可以不用var)

7:var a,_,c = 11,21,31  //下划线表示把值丢到垃圾桶

8:类型转换(不兼容的类型是不能转换的)
var a int =3
var b float32 = 3.01
c := float32(a)
fmt.Print(c)
fmt.Print(reflect.TypeOf(c))   //获取值的类型


9:变量可见性
var name = "leyangjun"
var Name = "leyangjun"   --> 外部包调用的时候只能调用Name,不能调用name,小写的会认为是私有变量

2.1:变量
    2.1.1 :申明变量
        var v1 int
        var v2 string
        var v4 [10]int 数组
        var v5 struct{
            f int
        }


    2.1.2:变量初始化
        var v1 int = 10
        var v2 = 10 //编译器可以自动推导出v2的类型
        v3 := 10 //编译器可以自动推导出v3的类型(出现在 := 左边的变量不应该是已经申明过得,否则会导致编译错误)


    2.1.3:变量赋值
        var v10 int
        v10 = 123
        i,j = j,i //多重赋值,交换变量值


2.2 常量
    2.2.1 常量定义
        const Pi float64 = 3.14.。。。。。。。。。。。
        const (
        size int64 = 1024
            eof = -1
        )
        const u,v float32 = 0,3 //u = 0.0 ,v = 3.0 常量的多重赋值
        const a,b,c = 3,4,"leyangjun" //a=3,b=4,c="foo" ,无类型整型和字符串常量(无类型常量)

    2.2.2 预定义变量
        const a = iota
        const b = iota //a,b的常量值都重置为0
        const(
            a = iota //0
            b = iota //1 ,计数开始加1
        )

    2.2.3 枚举
        const (
            Sunday = iota
            Monday
            Tuesday
            Wednesday
            Thursday
            Firday
            Saturday
            numberOfDays //这个常量没有导出,为私有,其他可以访问【大写字母开头的常量在包外可见】
        )


2.3 类型
    1:布尔类型 bool
    2:整型 int8,byte,int16,int,uint,uintptr
    3:浮点类型 float32,float64
    4:复数类型 complex64
    5: 字符串类型 string
    6:字符类型 rune
    7: 错误类型 error

    go语言也支持符合类型
    1:指针 pointer
    2:数组 array
    3:分片 slice
    4:字典 map
    5:通道 chan
    6:结构体 struct
    7:接口 interface

    2.3.1:布尔类型
        var v1 bool
        v1 = true
        v2 := (1 == 2) //v2会被推到为bool类型

        注意:布尔类型不能接受其他类型的赋值,不支持自动或强制类型转换
        var b bool
        b = 1 //编译错误
        b = bool(1) //编译错误

        正确做法
        var b bool
        b = (1 != 0)
        fmt.PrintIn("Result:",b) //打印出true

    2.3.2:整型
        注意:int 和 int32在Go里被认为是两种不同类型
        var value1 value2
        value1 := 64 //value1将会被自动推导为int类型
        value2 = value1 //编译错误

        value2 = int32(value1) //编译通过

        数值运算:+ ,-, *, /
        比较运算:>, <, == ,>= ,<= ,!=


    2.3.3:浮点型号
        包含两种:float32,float64,其中float32等价于C语言的float类型,float64等价于C语言double类型
        var fvalue1 float32
        fvalue1 = 12
        fvalue2 := 12.0 //如果不加小数点,fvalue2会被推导为整型而不是浮点型

        fvalue1 = fvalue2 //编译错误
        fvalue1 = float32(fvalue2) //强制类型转换


    2.3.4:字符串
        var str string
        str = “leyangjun” //字符串赋值
        ch := str[0] //取字符串的第一个字符
        注意:字符串的内容不能再初始化后被修改

猜你喜欢

转载自blog.csdn.net/leyangjun/article/details/83615893