golang学习

golang入门学习1

2020-03-19  本文已影响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))

上一篇下一篇

猜你喜欢

热点阅读