Go Quick

作者: JunChow520 | 来源:发表于2020-12-27 21:02 被阅读0次
    $ vim main.go
    
    //创建包
    package main
    //导入包
    import ("fmt")
    //主函数
    func main() {
        fmt.Println("hello world")
    }
    

    编译

    go build

    在当前项目根目录下执行编译命令go build,会在当前路径下生成可执行文件。

    $ go build main.go
    

    使用以GOPATH为基础的编译路径

    $ go build 
    

    编译时可通过go build -o自定义可执行文件名称

    $ go build -o entry.exe
    

    go build生成的可执行文件是当前操作系统可执行的文件,若希望在Windows平台下编译Linux下可执行文件,需要怎么做呢?

    只需要指定目标操作系统的平台和处理器架构即可

    $ go env
    set CGO_ENABLED=1
    set GOOS=windows
    set GOHOSTARCH=amd64
    
    环境变量 配置值 描述
    CGP_ENABLED 0 禁用CGO
    GOOS linux 目标平台
    GOARCH amd64 目标处理器架构

    例如:编译成Linux平台下的二进制可执行文件

    $ SET CGO_ENABLED = 0
    $ SET GOOS = linux
    $ SET GOARCH = amd64
    

    再次运行go build命令可得到能够在Linux平台运行的可执行文静

    go install

    go install命令会在当前目录下生成可执行的二进制文件,然后将二进制文件拷贝到GOPATH/bin目录下。

    go run

    go run命令会像执行脚本文件一样执行Go代码

    交叉编译

    Golang支持跨平台编译,比如在Windows平台编译一个能在Linux平台执行的文件。

    创建包

    Go以包作为管理工具,每个Go源代码必须声明所属包。

    package main
    

    package是声明包名的关键字,其后跟包名。

    Go的包与文件夹是一一对应的

    • 一个目录下的同级文件属于同一个包
    • 包名可以与目录名不同
    • main包是Go的入口包,一个Go程序中有且仅有一个main包。

    导入包

    包声明后可使用import语句导入程序中所以来的包,导入的包名使用"双引号包裹。

    import ("fmt")
    

    当前包中导入fmt包,告知编译器需要使用fmt包中的函数或变量等。

    Go语言标准内提供用于格式化输入输出的内容,类似于C语言中的stdio.h头文件。

    导入的包中不能含有代码中没有使用的包,否则编译器会报出编译错误import and not used

    使用import关键字引入多个包时,import使用()小括号名包裹,每个包名独占一行。

    入口函数

    func main() {
        fmt.Println("hello world")
    }
    
    • Go程序的入口函数为main()函数,是程序启动后运行的第一个函数。
    • main()函数只能声明在main包中,不能声明在其他包中。
    • 一个main包中必须有且仅有一个main函数
    • main()函数是自定义函数的一种,Go中函数以关键字func开头。

    函数定义格式

    func 函数名 (参数列表) (返回值类型列表){
      函数体
    }
    
    • 函数名:由数字、字母、下划线构成,首字母非数字,同一个包禁止出现同名函数。
    • 参数列表:参数由参数变量和参数类型组成
    • 返回值类型列表:当函数有返回值时函数体内必须使用return语句返回
    • 函数体:重复调用的代码片段
    • Go函数左大括号{必须和函数名同行
    fmt.Println("hello world")
    
    • Println是fmt包的用于格式化输出数据的函数,类似C中的printf函数。
    • Println函数打印完毕后自动换行,ln即Line。
    • 点号.是Go运算符表示调用fmt包中的Println函数
    • 语句结尾无需添加;分号做结束符

    相关文章

      网友评论

          本文标题:Go Quick

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