美文网首页程序员
《Go语言入门经典》1~3章读书笔记

《Go语言入门经典》1~3章读书笔记

作者: 跑马溜溜的球 | 来源:发表于2020-06-17 15:38 被阅读0次

    第1章 起步

    1.4.1 使用go run编译并运行程序

    go run main.go
    

    在开发go代码时,go run提供了一种便利的方式编译并运行程序。

    第2章 理解类型

    go是一种静态类型语言

    2.2 区分静态类型和动态类型

    在go中,程序员可显式地声明类型,也可以让编译器推断类型。

    2.3 使用布尔类型

    可以像下面这样声明布尔类型

    var b bool
    

    如果没有给布尔变量赋值,它将默认为false。

    2.4 理解数据类型

    2.4.1 带符号整数和无符号整数

    在go语言中,声明整型的方式如下:

    var i int = 3
    

    2.4.2 浮点数

    go语言中的浮点数可以是32闰的,也可以是64位的。

    var f float32 = 0.419
    

    2.4.3 字符串

    var s string = "ball"
    

    要想对看起来像数字的字符串执行数学运算,必须先将其转换为数字类型。

    2.4.4 数组

    var books [4]string
    books[0] = "the sun"
    

    2.5 检查变量的类型

    标准库中的reflect包能让您访问变量的底层类型。

    package main
    
    import (
        "fmt"
        "reflect"
    )
    
    func main() {
        var s string = "haha"
        var f float64 = 4.19303
        fmt.Println(reflect.TypeOf(s));
        fmt.Println(reflect.TypeOf(f));
    }
    

    输出结果

    string
    float64
    

    2.6 类型转换

    strconv包提供了一整套类型转换方法,可用于转换为字符串或将字符串转换为其他类型。

    package main
    
    import (
        "fmt"
        "reflect"
        "strconv"
    )
    
    func main() {
        var s string = ""
        s = strconv.FormatBool(true);
        fmt.Println(s);
        fmt.Println(reflect.TypeOf(s));
    }
    

    第3章 理解变量

    3.1 变量是什么

    Go是一种静态类型语言,因此声明变量时必须显式或隐式地指定其类型。

    //显示
    var book string = "go"
    //隐式
    var say = "hello"
    //错误
    var err
    

    3.2 快捷变量声明

    var s, t string = "y", "x"
    var (
        s string = "y"
        i int = 7
    )
    

    3.3 理解变量和零值

    在Go语言中,声明变量时如果没有给它指定值,则变量将为默认值,这种默认值被称为零值。

    常见变量的零值如下:

    int 0
    float 0
    bool false
    string ""
    

    3.4 编写简短变量声明

    使用简短变量声明时,编译器会推断变量的类型,因此您无须显式地指定变量的类型。请注意,只能在函数中使用简短变量声明。

    s := "hello world"
    

    3.5 变量声明方式

    下面列出了所有的变量声明方式。

        var s string = "hello"
        var c = "hello"
        var t string
        t = "hello"
        u := "hello"
    

    3.6 理解变量作用域

    • 在Go语言中,一对大括号({})表示一个块。
    • 对于在大括号({})内声明的变量,可在相应块的任何地方访问。
    • 大括号内的大括号定义了一个新块——内部块。
    • 在内部块中,可访问外部块中声明的变量。
    • 在外部块中,不能访问在内部块中声明的变量。

    简而言之,每个内部块都可访问其外部块,但外部块不能访问内部块。

    3.7 使用指针

    要获取变量在计算机内存中的地址,可在变量名前加上&字符。

    package main
    
    import (
        "fmt"
    )
    
    func main() {
        s := "hello"
        fmt.Println(&s)
    }
    

    运行结果:0xc000080030

    指针是Go语言中的一种类型,指向变量所在的内存单元。

    • 要声明指针,可在变量名前加上星号字符。
    • 如果要使用指针指向的变量的值,可在指针变量前加上星号。
    package main
    
    import (
        "fmt"
    )
    
    func main() {
        s := "hello world"
        var c *string = &s;
        fmt.Println(*c, c, &s);
    } 
    

    输出

    hello world 0xc00000e1e0 0xc00000e1e0
    
    • c为指向s的指针。从输出可以看出c与&s一致
    • *c即为指针指向的内容“hello world”

    3.8 声明常量

    常量指的是在整个程序生命周期内都不变的值。常量初始化后,可以引用它,但不能修改它。

    const greeting string = "how are you"
    

    相关文章

      网友评论

        本文标题:《Go语言入门经典》1~3章读书笔记

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