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

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

内容简介:一、第一个程序名称: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


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

查看所有标签

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

Spring Into HTML and CSS

Spring Into HTML and CSS

Molly E. Holzschlag / Addison-Wesley Professional / 2005-5-2 / USD 34.99

The fastest route to true HTML/CSS mastery! Need to build a web site? Or update one? Or just create some effective new web content? Maybe you just need to update your skills, do the job better. Welco......一起来看看 《Spring Into HTML and CSS》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器