美文网首页golang学习
golang入门学习1

golang入门学习1

作者: 灵纳帕 | 来源:发表于2020-03-19 17:09 被阅读0次

    一,golang入门基础

    信息 内容
    编号 dev-2020-001
    版本 v1.0
    状态 维护中
    更新 2020-03-17
    修改日期 修改内容 版本 作者
    2020-03-17 新创建 v1.0 adsda

    1 简单章节

    helloword。
    例:

    package main
    import "fmt"
    func main() {
        fmt.Println("hello world")
    }
    

    1.1 程序运行及编译:

    直接运行程序

    go run hello-world.go
    

    编译为二进制文件

    go build hello-world.go
    

    1.2 简单代码

    计算代码:

    package main
    
    import "fmt"
    
    func main()  {
        fmt.Println("name")
        fmt.Println(9.0/4.0)//加小数据显示,不加四舍五入
        fmt.Println(9.0/4.0)
        fmt.Println("go" + "lang")//完美拼接字符串
        fmt.Println(true && false)
        fmt.Println(true || false)
        fmt.Println(!true)
    }
    

    计算一共有: 加减乘除等(待补充);

    if else 代码:

    赋值可以与判断写在一起:

    if num := -2; num < 0 {
            fmt.Println(num, "is negative")
        } else if num > 10 {
            fmt.Println(num, "has 1 digit")
        } else {
            fmt.Println(num, "has multiple digits")
        }
    

    同理的switch代码:
    一个基本的 switch

        i := 2
        switch i {
        case 1:
            fmt.Println("one")
        case 2:
            fmt.Println("two")
        case 3:
            fmt.Println("three")
        }
    

    带入参数的 switch:

    package main
    import "fmt"
    import "time"
    func main()  {
      t := time.Now()
      fmt.Println(time.Now().Hour)
      fmt.Println(t.Hour)
        switch {
        case t.Hour() < 12:
            fmt.Println("it's before noon")
        default:
            fmt.Println("it's after noon")
        }
    }
    

    数组

    普通数组:

    package main
    import "fmt"
    func main()  {
        //创建数组,初始为0
        var a [5]int 
        fmt.Println(a)  
        //对数组指定位置赋值
        a[3] = 100
        fmt.Println(a)  
        //批量赋值
        b :=[5]int{1,2,3,4,5}
        fmt.Println(b)
        //添加多组数组
        var c [3][4] int
            fmt.Println(c)
    *==**//这个代码有点看不懂,以后回顾**==*
        for i := 0; i <3 ; i++{
            for j := 0; j < 4; j++ {
               c[i][j] = i + j 
            }           
        }
        fmt.Println(c)
    }
    

    切片Slice是 Go 中一个关键的数据类型,是一个比数组更加强大的序列接口:

    package main
    import "fmt"
    func main()  {
        //使用内建的方法 `make`。这里我们创建了一个长度为3的 `string` 类型 slice(初始化为零值)
        s := make([]string ,3)
        fmt.Println(s)
        s[0]="1"  
        s[1]="2"
        s[2]="3"
        fmt.Println(s)
            //或者
            t := []string{"g","h","i"}
            fmt.Println("t:" ,t)
        //append新增值
        s = append(s,"4","5")
            fmt.Println(s)
        //复制其他数组数据
        c := make([]string ,6)
        copy(c,s)
        fmt.Println(c)
            //或者选择某段区间
            l := c[2:5] //指针选
            m := c[:5]  //区域选,前
            n := c[2:]  //区域性,后
            fmt.Println("l:",l ,"m:",m,"n:",n)
        //支持多组
        *==**//这个代码有点看不懂,以后回顾**==*
        twos :=make([][]int ,3)
        fmt.Println(twos)
        for i:=0 ;i<3; i++{
            innn := i+1
            twos[i]=make([]int,innn)
            for j :=0;j<innn;j++{
                twos[i][j]=i+j
            }
        }
        fmt.Println(twos)
    }   
    

    字典,也叫管理数组

    package main
    import "fmt"
    func main()  {
    
        m :=make(map[string]int)
        m["1"]=7
        m["2"]=17
        fmt.Println(m)
        //for循环添加值
            for i := 0; i < 7; i++ {
            m[fmt.Sprintf("%d",i)]=i+1
        }
        fmt.Println(m)
    
        //设置某个键值对
        m1 :=m["1"]
        fmt.Println(m1)
    
        //显示键值对的数量
        fmt.Println(len(m))
    
        //删除键值对
        delete (m ,"4")
        fmt.Println(m)
    
        //分析是否有值
        _, aa :=m["3"]
        fmt.Println(aa)
    
        //初始化赋值
        n := map[string]int {"sss":1,"aaa":2}
        fmt.Println(n)
    }   
    

    range 遍历

    package main
    import "fmt"
    func main()  {
        //初始化赋值
        nums := [3]int{2,3,4}
            fmt.Println(nums)
        
        //遍历统计总和
        ii :=0
        for _,i:= range nums{//显示总数,所以用_取消索引选择
            ii +=i
        }
        fmt.Println(ii)
    
        //显示索引,a即为对应索引,i即为索引对应的值
        for a,i := range nums{
            if a==2{
                fmt.Println(i)
            }
        }
    
        //通过range显示map键值对
        aa := map[string]string{"a":"a1","b":"b1"}
        for i,a:=range aa{
            fmt.Println(i,a)
        }
    
        //迭代Unicode编码,显示
        for i ,a:=range "go"{
            fmt.Println(i,a)
        }
    
    }   
    

    2 内置函数

    //字段长度
    fmt.Println("len:", len(s))

    相关文章

      网友评论

        本文标题:golang入门学习1

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