美文网首页
变量与常量

变量与常量

作者: isuntong | 来源:发表于2020-03-07 21:02 被阅读0次

    变量的概念和基础

    依照idea中的配置设置一下我们的字体、背景色、背景图片

    package main
    
    import "fmt"
    
    func main(){
        /*
        变量:variable
        概念:一小块内存,用于存储数据,在程序运行过程中数值可以改变
    
        使用:
            1. 变量的声明,也叫定义
                第一种:定义变量,然后进行赋值
                第二种:类型推断
                第三种:简短声明
            2. 变量的访问,赋值和取值
                直接通过变量名访问
    
        go特性:
            静态语言:强类型语言
                go、java、C++、c#
            动态语言:弱类型语言
                JavaScript、php、python、ruby
        */
    
        //第一种:定义变量,然后进行赋值
        var num1 int
        num1 = 30
        fmt.Printf("num1的数值是:%d\n",num1)
    
        //写在一行
        var num2 int = 15
        fmt.Printf("num2的数值是:%d\n",num2)
    
        //第二种:类型推断
        var name = "王二狗"
        fmt.Printf("类型是:%T,数值是:%s\n",name,name)
    
        //第三种:简短声明
        sum := 100
        fmt.Println(sum)
    
        //多个变量同时定义
        var a, b, c int
        a = 1
        b = 2
        c = 3
        fmt.Println(a, b, c)
    
        var m, n int = 100, 200
        fmt.Println(m, n)
    
        var n1, f1, s1 = 100, 3.14, "Go"
        fmt.Println(n1, f1, s1)
    
        var (
            studentName = "小红"
            age = 18
            sex = "女"
        )
        fmt.Printf("学生姓名:%s,年龄:%d,性别:%s\n", studentName, age, sex)
    }
    
    

    2. 变量的内存分析和注意事项

    ctrl+D 复制粘贴一行代码
    ctrl+shift+上下键 移动一行代码

    package main
    
    import "fmt"
    
    func main() {
        var num int
        num = 100
        fmt.Printf("num的数值是:%d,地址是:%p\n", num, &num)
        // main1()
    
        num = 200
        fmt.Printf("num的数值是:%d,地址是:%p\n", num, &num)
    
    }
    
    

    值改变,地址不变

    注意事项

    package main
    
    import "fmt"
    
    var a = 1000
    
    func main() {
        /*
        注意:
        1. 变量必须先定义才能使用
        2. 变量的类型和赋值必须一致
        3. 同一个作用域内,变量名不能冲突
        4. 简短定义左边的变量至少有一个是新的
        5. 简短定义方式不能定义全局变量(类似于上面的 a )
        6. 变量的默认值
            整形:0
            浮点型 : 0
            字符串 : ""
        7. 导入的包和创建的变量必须使用,不然报错
        */
        var num int
        num = 100
        fmt.Printf("num的数值是:%d,地址是:%p\n", num, &num)
        // main1()
    
        num = 200
        fmt.Printf("num的数值是:%d,地址是:%p\n", num, &num)
    
        fmt.Println("--------------------------------------")
    
        // 默认值
        var m int //整数 0
        fmt.Println(m)
    
        var n float64 // 0.0  0
        fmt.Println(n)
    
        var s string // ""
        fmt.Println(s)
    
        var s2 []int // 切片 ""
        fmt.Println(s2)
        fmt.Println(s2 == nil)
    }
    
    

    3. 常量的使用

    package main
    
    import "fmt"
    
    func main() {
        /*
        常量:
        1. 概念:同变量类似,程序执行过程中数值不能发生改变
        2. 语法:
            显示类型定义
            隐示类型定义
    
        3. 常数:
            固定的数值:100,"abc"
        */
    
        // 常数
        fmt.Println(100)
    
        // 定义常量 不使用不会报错 不能重新赋值
        const PATH string = "http://www.baidu.com"
        const PI = 3.14
        fmt.Println(PATH)
    
        //3. 定义一组变量
        const C1,C2,C3 = 100, 3.14, "haha"
        const (
            MALE = 0
            FEMALE = 1
        )
    
        // 一组常量中,如果某个常量没有初始值,默认和上一行一致
        const (
            a int = 100
            b
            c string = "ruby"
        )
        fmt.Printf("%T,%d\n", a, a)
        fmt.Printf("%T,%d\n", b, b)
        fmt.Printf("%T,%s\n", c, c)
    
        //5. 枚举类型 使用常量组作为枚举类型 一组相关数值的数据
        const (
            SPRING = 0
            SUMMER = 1
            AUTUMN = 2
            WINTER = 3
        )
    }
    

    iota

    package main
    
    import "fmt"
    
    func main4() {
        /*
        iota:特殊的常量,可以被编译器自动修改的变量
            每当定义一个const,iota的初始值为0
            每当定义一个常量,就会自动累加1
            直到下一个const出现,清零
    
        */
        const (
            a = iota
            b = iota
            c = iota
        )
    
        fmt.Println(a)
        fmt.Println(b)
        fmt.Println(c)
    
        const (
            d = iota
            e
        )
    
        fmt.Println(d)
        fmt.Println(e)
    
        const (
            MALE = iota
            FEMALE
            UNKNOW
        )
        fmt.Println(MALE, FEMALE, UNKNOW)
    }
    
    package main
    
    import "fmt"
    
    func main() {
        const (
            A = iota //0
            B        //1
            C        //2
            D = "haha" //iota = 3
            E          //iota = 4
            F = 100    //iota = 5
            G          //iota = 6
            H = iota   //iota = 7
            I          //iota = 8
        )
    
        const (
            J = iota   //iota = 0
        )
    
        fmt.Println(A)
        fmt.Println(B)
        fmt.Println(C)
        fmt.Println(D)
        fmt.Println(E)
        fmt.Println(F)
        fmt.Println(G)
        fmt.Println(H)
        fmt.Println(I)
        fmt.Println(J)
    }
    

    相关文章

      网友评论

          本文标题:变量与常量

          本文链接:https://www.haomeiwen.com/subject/njrhdhtx.html