zoukankan      html  css  js  c++  java
  • 2基本数据类型(整数,浮点数,复数,布尔值,字符串,常量)

    待补充

    指针

    package main
    import "fmt"
    /*
    改变指针指向的地址
    */
    func testPointer(p *int)  {
        *p =2
    }
    /*
    不能改变指针本身
    */
    func testPointer1(p *int)  {
        p = nil
    }
    /*
    交换变量值
    */
    func swapValue1(a,b *int)  {
        *a,*b = *b,*a
    }
    func swapValue(a,b int)(int ,int)  {
        return b,a
    }
    func main() {
        var a = 0
        b := new(int)
        fmt.Println(b)
        testPointer(&a)
        fmt.Println(a)
        fmt.Println(b)
        testPointer1(b)
        fmt.Println(b)
        m,n := 1,2
        swapValue1(&m,&n)
        fmt.Println(m,n)
        fmt.Println(swapValue(m,n))
    }

    数组

    package main
    /*
    数组是具有固定长度,元素数据类型相同的序列。slice的长度是可以改变的,所以更受欢迎
    
    数据元素访问方式与Python的列表一样
    
    len() 计算数组长度
    
    */
    import "fmt"
    
    func main()  {
        var a [3]int  //新的数组中元素初始值为元素类型的零值
        fmt.Println(a[1])
        //打印索引及值
        for i,v:=range a{
            fmt.Printf("%d %d
    ",i,v)
        }
        //只打印值
        for _,v:=range a{
            fmt.Printf("%d
    ",v)
        }
        //初始化定义一个数组
        var q [3]int = [3]int{1,2,3}
        var r [3]int = [3]int{1,2}    //不够零值补充
        fmt.Println(q)
        fmt.Println(r)
    
        //数组长度由初始化数组的元素个数决定
        e:=[...]int{4,5,6,7}
        fmt.Println(e)
        //数组长度是数组类型的一部分,下面两种是不容的数组类型,数组的长度必须是常量表达式(也就是这个值在编译时就可以确定)
        fmt.Printf("%T
    ",q)  //[3]int
        fmt.Printf("%T
    ",e)  //[4]int
    
        //初始化数组是,可以给通过index:value的形式给对应index的元素一个初始值,不给就是该元素类型的领值
        type Cu int
        const (
            U Cu=iota  // 0
            E     // 1
            G     // 2
            R     // 3
        )
        fmt.Println(U,E,G,R)
        symbol:=[...]string{U:"$",E:"@",G:"#",R:"++"}
        fmt.Println(symbol) //[$ @ # ++]
        fmt.Println(E,symbol[E]) //1 @
        //指定索引对用的值,没有给的是该类型的领值
        s:=[...]int{1:3,2:1,6:6,5:5}
        fmt.Println(s)
    
        //数组比较: 如果数组里的元素类型是可比较的,数组也可以比较。 == 判断两边数组是否相同(必须两个数组内的元素完全相同)。 != 比较两个数组是否不同
        aa:=[2]int{1,2}
        bb:=[...]int{1,2}
        cc:=[2]int{1,3}
        fmt.Println(aa==bb,aa==cc,bb==cc)   //true false false
        dd:=[3]int{1,2}
        fmt.Println(aa == dd)  //类型不同无法比较 invalid operation: aa == dd (mismatched types [2]int and [3]int)
    
    总结:数组是不可变的(无法添加、删除元素), 且是值引用(可以通过指针引用)
    }
  • 相关阅读:
    docker添加sudo权限
    服务器出口ip
    flask
    ACM-奇特的立方体
    ACM-牛喝水
    ACM-可乐兑换
    ACM-Work Assignment
    ACM-DFS Template
    ACM-Checker Challenge
    ACM-Divide Tree
  • 原文地址:https://www.cnblogs.com/Hale-wang/p/13328570.html
Copyright © 2011-2022 走看看