GO语言学习笔记(三)初写GO程序

栏目: Go · 发布时间: 6年前

内容简介:一、第一个程序名称:helloworld.go运行helloworld.go

一、第一个程序

名称:helloworld.go

package main
import "fmt"
func main() {
        fmt.Println("hello world!")
}

知识点1:Go语言的代码文件一般是以.go作为后缀。

运行helloworld.go

执行:go run helloworld.go

输出结果:hello world!

知识点2:使用run参数的意思是编译并运行。

编译成二进制文件

执行: go build -o helloworld helloworld.go

执行:ls查看

helloworld helloworld.go

在当前目录下会产生一个helloworld的二进制文件,我们可以直接运行这个二进制文件

执行二进制文件:./helloworld

执行结果:hello world!

分析这段 GO 语言代码:

1) package main:这一行是申明包名,所有Go语言编写的文件都是以“package xxxx”开头,对于独立运行的执行文件,第一行必须是“package main”

2)import "fmt":表示导入“fmt”包,“fmt”包是Go语言标准库中的包,所以不需要下载和安装。“fmt”包的作用是用于字符串的格式化输出。另外被引用的其他package被称为库或者称为包

3)func main() {} :这一行是程序中的main主函数,也成为入口函数。Go程序在执行的时候,首先调用的函数就是main函数,大部分的语言都是以main作为逻辑上的入口函数,比如:c、 python 等。另外在Go语言中,函数都是使用func关键字来定义函数名称

4)fmt.Println("hello world!") :这一行是调用fmt包的函数,把hello world字符串输出到控制台。字符串由双引号包裹、表示是字符串类型

二、交叉编译

什么是交叉编译:

就是在一个平台上可以编译另一个平台的二进制代码文件。例如,我们使用的是Mac系统,在Mac上可以编译出可在 Linux 或者windwos系统上运行的可执行程序。

不同系统平台的对比图:

GO语言学习笔记(三)初写GO程序

交叉编译示例:(在mac系统上生成linux64位的可执行程序)

CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build helloword.go

解释:CGO_ENABLED:指明cgo工具是否可用的标识,1位启用cgo工具,0是关闭,交叉编译不支持cgo工具

GOOS:指定目标操作系统

GOARCH:执行目标操作系统的架构,也就是是多少位的操作系统

这样生成的helloworld二进制包就可以拷贝到linux上运行了。

列举不同平台的交叉编译:

1)在Mac上编译LInux和Window 64位可执行程序

CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build helloword.go

CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build helloword.go

2)Linux上编译Mac和Windows 64位可执行程序

CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build helloword.go

CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build helloword.go

3)Windows上编译Mac和Linux 64位可执行程序

SET CGO_ENABLED=0

SET GOOS=darwin

SET GOARCH=amd64

go build helloword.go

SET CGO_ENABLED=0

SET GOOS=linux

SET GOARCH=amd64

go build helloword.go


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

C#图解教程

C#图解教程

索利斯 (Daniel M.Solis) / 姚琪琳、苏林、朱晔 / 人民邮电出版社 / 2013-7-1 / CNY 89.00

本书是广受赞誉的C# 图解教程的最新版本。作者在本书中创造了一种全新的可视化叙述方式,以图文并茂的形式、朴实简洁的文字,并辅以大量表格和代码示例,全面、直观地阐述了C# 语言的各种特性。新版本除了精心修订旧版内容外,还全面涵盖了C# 5.0 的新增特性,比如异步编程、调用者信息、case 表达式、带参数的泛型构造函数、支持null 类型运算等。通过本书,读者能够快速、深入理解C#,为自己的编程生涯......一起来看看 《C#图解教程》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具