美文网首页
第02天(函数、工程管理)_04

第02天(函数、工程管理)_04

作者: lucas777 | 来源:发表于2019-12-04 20:05 被阅读0次

    18_defer和匿名函数结合使用.go

    package main //必须
    
    import "fmt"
    
    func main() {
        a := 10
        b := 20
    
        //  defer func(a, b int) {
        //      fmt.Printf("a = %d, b = %d\n", a, b)
        //  }(a, b) //()代表调用此匿名函数, 把参数传递过去,已经先传递参数,只是没有调用
    
        defer func(a, b int) {
            fmt.Printf("a = %d, b = %d\n", a, b)
        }(10, 20) //()代表调用此匿名函数, 把参数传递过去,已经先传递参数,只是没有调用
    
        a = 111
        b = 222
        fmt.Printf("外部:a = %d, b = %d\n", a, b)
    }
    
    func main01() {
        a := 10
        b := 20
    
        defer func() {
            fmt.Printf("a = %d, b = %d\n", a, b)
        }() //()代表调用此匿名函数
    
        a = 111
        b = 222
        fmt.Printf("外部:a = %d, b = %d\n", a, b)
    }
    

    19_获取命令行参数.go

    package main //必须
    
    import "fmt"
    import "os"
    
    func main() {
        //接收用户传递的参数,都是以字符串方式传递
        list := os.Args
    
        n := len(list)
        fmt.Println("n = ", n)
    
        //xxx.exe a b
        for i := 0; i < n; i++ {
            fmt.Printf("list[%d] = %s\n", i, list[i])
        }
    
        for i, data := range list {
            fmt.Printf("list[%d] = %s\n", i, data)
        }
    }
    

    20_局部变量.go

    package main //必须
    import "fmt"
    func test() {
        a := 10
        fmt.Println("a = ", a)
    }
    func main() {
        //定义在{}里面的变量就是局部变量,只能在{}里面有效
        //执行到定义变量那句话,才开始分配空间,离开作用域自动释放
        //作用域,变量其作用的范围
        //a = 111
        {
            i := 10
            fmt.Println("i = ", i)
        }
        //i = 111
        if flag := 3; flag == 3 {
            fmt.Println("flag = ", flag)
        }
        flag = 4
    }
    

    21_全局变量.go

    package main //必须
    import "fmt"
    func test() {
        fmt.Println("test a = ", a)
    }
    //定义在函数外部的变量是全局变量
    //全局变量在任何地方都能使用
    var a int
    func main() {
        a = 10
        fmt.Println("a = ", a)
        test()
    }
    

    22_不同作用域同名变量.go

    package main //必须
    import "fmt"
    var a byte //全局变量
    func main() {
        var a int //局部变量
        //1、不同作用域,允许定义同名变量
        //2、使用变量的原则,就近原则
        fmt.Printf("%T\n", a) //int
        {
            var a float32
            fmt.Printf("2: %T\n", a) //float32
        }
        test()
    }
    func test() {
        fmt.Printf("3: %T\n", a) //uint8, 就是byte
    }
    

    23_导入包.go

    package main //必须
    
    //忽略此包
    import _ "fmt"
    
    func main() {
    
    }
    
    /*
    //给包名起别名
    import io "fmt"
    
    func main() {
        io.Println("this is a test")
    }
    */
    
    /*
    //.操作
    import . "fmt" //调用函数,无需通过包名
    import . "os"
    
    func main() {
        Println("this is a test")
        Println("os.Args = ", Args)
    }
    */
    
    /*
    //方式1
    //import "fmt" //导入包,必须使用,否则编译不过
    //import "os"
    
    //方法2,常用
    import (
        "fmt"
        "os"
    )
    
    func main() {
        fmt.Println("this is a test")
        fmt.Println("os.Args = ", os.Args)
    }
    */
    

    相关文章

      网友评论

          本文标题:第02天(函数、工程管理)_04

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