1、安装
2、第一个程序
--代码示例:
package main //非注释的第一行必须为该行,当执行入口在这一行时,package名称必须是main
import (
. "fmt" //导入包名
)
func main() { //大括号不能独立一行,会编译报错
Println("黎明")
}
--命令:
--go run hello.go # 运行 hello.go 文件
--go build hello.go # 生成可执行二进制文件
--go build -o hellolala.exe hello.go # 规定可执行二进制文件名称
--go install hello.go # 先 go build,再将可执行二进制文件添加到环境变量中,可以在任何地方执行
3、交叉编译 | 跨平台编译
--交叉编译|跨平台编译:在windows中编译一个可以在linux执行的二进制文件
--如何在 windows中编译出一个 可以在linux中执行的文件:
--打开 cmd,输入如下命令:
SET CGO_ENABLED=0&&SET GOOS=linux&&SET GOARCH=amd64
--再执行 go build ***.go -o name.exe 即可
--再设置回来:
SET CGO_ENABLED=0&&SET GOOS=windows&&SET GOARCH=amd64
4、变量 的 声明定义
--函数外只能放置标识符[ 变量|常量|函数|类型 ]的申明,不能直接写一个语句
fmt.Println("liming") // 这种在函数外写语句是违法的
s1 = "liming" // 也是违法的
var s1 string // 申明变量合法
--标识符:
--Go语言中标识符由字母数字和_(下划线)组成,并且只能以字母和_开头。
--go的25个关键词:
--break default func interface select
case defer go map struct
chan else goto package switch
const fallthrough if range type
continue for import return var
此外,Go语言中还有37个保留字。
-- Constants: true false iota nil
Types: int int8 int16 int32 int64
uint uint8 uint16 uint32 uint64 uintptr
float32 float64 complex128 complex64
bool byte rune string error
Functions: make len cap new append copy close delete
complex real imag
panic recover
--变量使用前必须申明:
--申明:声明一个变量必须指定变量类型
var 变量名 变量类型
--举例:
var s1 string
var int01 int
var isOk bool
--示例:
package main
import . "fmt"
func main() {
var s1 string
s1 = "yuelei"
Println("定义的变量为:", s1)
}
--批量申明:
var (
s1 string
int01 int
isOk bool
)
--变量初始化:
--var 变量名 类型 = 表达式 // 一次申明一个
var name string = "Q1mi"
var age int = 18
--一次声明多个变量
var ( // 多个变量申明赋值
age int
name string
c bool
)
age = 100
name = "liming"
c = false
var age, name = 20, “liming” // 也可以一行直接赋值多个变量
[注:] 变量申明赋值之后必须使用,否则编译无法通过
--如果觉得代码比较混乱
--go fmt main.go // 检查代码格式
--变量定义示例:
package main
import . "fmt"
var (
a int
b string
c bool
)
func main() {
a = 100
b = "liming"
c = false
Print(c) // 打印一个字符
Printf("name is : %s", b) // 格式化输出字符串
Println(a) // 打印之后加一个换行符
}
5、变量 特殊的声明定义
--声明变量同时赋值
--var s1 string = "liming"
--类型推导 (根据变量值推到变量类型)
--var s2 = "20"
--简短变量申明
--s3 := "sdfgh" // 方式二 的简写方式
6、匿名变量
--在使用多重赋值时,如果想要忽略某个值,可以使用匿名变量(anonymous variable)。 匿名变量用一个下划线_表示,例如:
func foo() (int, string) {
return 10, "Q1mi"
}
func main() {
x, _ := foo()
_, y := foo()
fmt.Println("x=", x)
fmt.Println("y=", y)
}
--匿名变量不占用命名空间,不会分配内存,所以匿名变量之间不存在重复声明。 (在Lua等编程语言里,匿名变量也被叫做哑元变量。)
--注意事项:
--函数外的每个语句都必须以关键字开始(var、const、func等)
-- :=不能使用在函数外,因为这里有了赋值语句
--_多用于占位,表示忽略值。