Appearance
环境配置与基本格式
环境配置
国内镜像
查看go环境配置
go env
修改镜像
go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn,direct
基本格式
go
package main // 定义包
import "fmt"
func main() {
fmt.Println("hello")
fmt.Print(" world")
// fmt.Printf(" world")
fmt.Println("hh","mm") // 一行结束自动换行,中间有空格分割:hh mm
fmt.Print("hh","mm") // 一行结束不会换行,中间无空格分割:hhmm
// ===========
a :=10
b :=20
c :=30
fmt.Printf("a=%d,b=%d,c=%d", a,b,c)
}
/*
func test() {
// anycode
}
*/
变量、常量
绝对不可以只定义不使用。定义了就一定要使用
go
// 方法一
// var 变量名 类型 = 表达式
var name string = "tony" // 类型不是必写的。var name = "tony"也可以。注释里的这种写法会让系统自动推导类型
// 可以只声明不定义
var name1 string
fmt.Print(name1) // 由于没有定义(即没有初始化),name1的值为空
// ===================
// 方法二
// 这种方法会自动推导变量类型
// 只能在函数中使用这种写法
a := 10
b,c,d := 12,true,"d" // 可以同时定义多个变量
// ===================
// 方法三
// 多变量声明
var (
name string
age int
)
n1,n2 := 1,2
// 匿名变量
// 下划线表示匿名变量
func getInfo()(string, int){
return "tony",10
}
var name, _ = getInfo() // 这样就只能取到name,age取不到了
// 常量
const PI = 3.1415926 // const定义。常量名称尽量用大写。常量值后续不可变更
// 多常量
const (
A = "A"
B = "B"
C // 此时C的值缺省,会取前一个声明的值
)
iota
go
const zero = iota // iota是go语言的保留字,代表初始化为0.
const (
zero = iota // 第一个是iota,后面的值会自增,也就是one=1,two=2
one
two
)
const (
zero = iota
_ // 匿名变量会被跳过,但是自增还是生效,所以two=2,three=3
two
three
)
// iota可以插队
const (
n1=iota // 0
n2=100 // 100
n3=iota // 2
n4 // 3
)
// 多个iota定义在一行
const(
n1,n2 = iota+1, iota+2 // 1,2
n3, n4 // 2,3
n5, n6 // 3,4
)