本文已参与「新人创作礼」活动,一起开启掘金创作之路。
go语言与c语言对比
hyperpolyglot.org/c //<<==== 重要
go语言: golang
开发工具:goland
一、Go语言概述
1. 工程管理
- GOPATH
gopath是所有项目的根路径
go语言的项目,需要有特定的目录结构进行管理,不能随便写,一个标准的go工程需要有三个目录:使用一个名为GOPATH的环境变量来指定:
-
src
- 放我们自己的源代码
-
bin
- 编译之后的程序之后,使用标准命令go install之后存放位置
-
pkg
- 缓存包
- GOROOT
存放go语言的标准库sdk: software development kit
配置goland,打开工程
2. helloworld 概览
package main
import "fmt"
func main() {
fmt.Println("hello world")
}
解析:
//每个go程序,都必须有一个 package main
//每个go程序,都是.go结尾的
//go程序中没有.h,没有.o, 只有.go
//一个package,包名,相当于命名空间
//std::cout
package main
//这是导入一个标准包fmt,format,一般用于格式化输出
import "fmt"
//主函数,所有的函数必须使用func 开头
//一个函数的返回值,不会放在func前,而是放在参数后面
//函数左花括号必须与函数名同行,不能写到下一行
func main() {
//go语言语句不需要使用分号结尾
fmt.Println("hello world");
}
3. go语言特点
-
没有头文件概念, .go走天下
-
强类型的语言,编译性语言(pthon是弱类型,解释性语言)
-
一个go语言的应用程序,在运行的时候是不需要依赖外部库的
- 把执行时需要的所有库都打包到程序中
- go程序比较大
- 如果import的包在程序中没有使用,那么程序不允许编译
-
go语法是不区分平台的,在windows下面也可以编译一个程序,在linux下运行,需要两个环境变量来控制:
-
GOOS:设定运行的平台
- mac:GOOS=darwin
- linux: GOOS= linux
- windows :GOOS=windows
-
GOARCH: 目标平台的体系构架
- 386: GOARCH=386
- amd64: GOARCH=amd64
- arm : GOARCH=arm
-
4. goland终端配置成shell
重新加载一下终端即可:
5. go命令(build/run/install/env)
-
编译.go文件,-o指定生成文件的命令
- go build -o test.exe main.go xxx.go
- go build *.go
-
直接运行程序,不会编译成exe文件
- go run *.go
-
安装程序 go install
-
拿到一个c源码,想自己编译出exe
- ./configure
- make
- make install ===> 将编译好的程序安装到指定的目录/usr/bin
-
使用go install,可以将应用程序安装到GOBIN下面: $GOPATH/bin
- go install ==> 需要实现在环境变量中设置GOBIN的目录
-
- go env,可以查看当前go的环境变量
- 如果重新设置了环境变量,需要重新启动goland才能生效