GO基础深入总结

作者: ljh123 | 来源:发表于2018-12-02 08:46 被阅读17次

    GO的关键字:
    包管理:package、import
    变量:var、map、struct、interface、const、type
    函数:func、return、defer
    循环:if、else、switch、case、fallthought、default、for、break、continue、goto、range
    并发:go、chan、select

    GO的变量类型:
    (1)整型
    int(默认)、int8、int16、int32、int64、byte
    uint、uint8、uint16、uint32、uint64
    (2)浮点型:float32、float64(默认)
    (3)复数:complex64、complex128(默认)
    (4)数组:值拷贝、不同长度和不同类型的数组都是一个新类型
    (5)切片:引用
    (6)map:引用
    (7)复合类型:interface、struct

    GO的内置函数:append、cap、new、make、copy、len、delete、panic、recover
    (1)append:向切片中添加一个或多个值

    // 注意:有个潜在的问题,看下面的代码
    package main
    
    import "fmt"
    
    func main() {
        a := []int{1,2,3}
        b := append(a, 1)
        c := append(b, 2)
        d := append(b, 3)
        fmt.Println(c, d)
    }
    输出结果:[1 2 3 1 3] [1 2 3 1 3]
    

    (2)cap:计算数组和切片已分配的内存空间

    package main
    
    import "fmt"
    
    func main() {
        a := []int{1,2,3}
        b := make([]int, 0, 100)
        c := [3]int{}
        fmt.Println(cap(a), cap(b), cap(c))
    }
    输出:3 100 3
    

    (3)new:传入一个结构体名,返回它的一个实例对象的一个引用
    (4)make:为切片、map分配空间

    切片:
        make([]int, 3)
        make([]int, 3, 100)
    
    map:
        make(map[int]int)  
    

    (5)copy:为切片进行值拷贝

    package main
    
    import "fmt"
    
    func main() {
        a := []int{}
        b := []int{5}
        c := []int{5,6,7,8}
        copy(a, []int{1,2})
        copy(b, []int{1,2,3})
        copy(c, []int{1,2,3})
        fmt.Println(a)
        fmt.Println(b)
        fmt.Println(c)
    }
    输出:
    []
    [1]
    [1 2 3 8]
    

    (6)len:计算字符串、数组、切片、map当前已使用的空间个数
    (7)delete:删除map中的一个key
    (8)panic:引起恐慌、会从当前函数一直往掉用该函数的那个函数扩散,直到遇到recover或者是扩散到main函数中
    (9)recover:接收恐慌

    相关文章

      网友评论

        本文标题:GO基础深入总结

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