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

2019-12-04  本文已影响0人  lucas777

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)
}
*/
上一篇下一篇

猜你喜欢

热点阅读