go语言文字的基本结构
package main
//导入语句,导入的包
import "fmt"
//程序的入口
func main() {
fmt.Println("Hello 世界!")
}
go语言的变量以及声明
go语言中的变量必须要先声明,再使用
1、声明变量
`var s1 string`声明一个s1变量,类型是字符串
package main
import "fmt"
//单独声明变量,并且go语言中推荐使用小驼峰命名 例如 var myHobby string
/*var name string
var age int
var isOk bool
*/
//批量声明变量(一般用来定义全局变量)
var (
name string //默认赋值为“”
age int //默认赋值为0
isOk bool //默认是false
)
func foo() (int, string) {
return 25, "Alen"
}
func main() {
name = "Alen"
age = 25
isOk = true
//go语言中声明的变量必须使用,不使用的话编译时会报错
fmt.Print(isOk) //在终端中输出要打印的内容
fmt.Println() //打印一个空行,也相当如换行
fmt.Printf("name:%s\n", name) //%s:占位符,使用name这个变量的值去替换占位符,\n加上表示换行
fmt.Println(age) //打印完指定的内容之后会在后面加一个换行符
//声明变量的三种方式
//声明变量同时赋值
var s1 string = "Alen"
fmt.Println(s1)
//类型推导
var s2 = "Alen"
fmt.Println(s2)
//短声明变量(只能在函数中使用这种方法) 这种推荐使用
s3 := "Alen go"
fmt.Println(s3)
//匿名变量:一个特殊的变量 用_下划线来表示,常用于接收不想用的变量
i, _ := foo()
_, j := foo()
fmt.Println("i=", i)
fmt.Println("j=", j)
}
终端输出:
PS C:\Users\Alen\go\src\02\var> go build
PS C:\Users\Alen\go\src\02\var> .\var.exe
true
name:Alen
25
Alen
Alen
Alen go
i= 25
j= Alen
go语言常量
package main
import "fmt"
//常量,用const来声明表示在程序运行期间不会改变的量
//注意:常量定义了之后不能修改
const pi = 3.14
//批量声明常量
const (
statusOk = 200
notFound = 404
)
//注:如果批量声明时,某一行声明后没有赋值,表示默认和上一行一致
const (
n1 = 100
n2
n3
)
//iota是go语言中的常量计数器,只能在常量的表达式中使用
/*
iota 在const关键字出现时将被置为0,const中每增加一行常量声明将使iota计数一次,
可以理解为const语句块中的行索引,使用iota能简化定义,在定义枚举时很有用
*/
const (
a1 = iota //0
a2 //1
a3 //2
)
//几个常见的iota示例
const (
b1 = iota //0
b2 //1
_ //2
b3 //3
)
//iota声明插队
const (
c1 = iota //0
c2 = 100 //100
c3 = iota //2
c4 //3
)
//定义数量级(<<表示左移,1<<10表示将1的二进制表示向左移10位)
const (
_ = iota //0
kb = 1 << (10 * iota) //000001将1向左移10位置 二进制位10000000000也就是十进制1024
mb = 1 << (10 * iota)
gb = 1 << (10 * iota)
tb = 1 << (10 * iota)
pb = 1 << (10 * iota)
)
func main() {
fmt.Println("n1", n1)
fmt.Println("n2", n2)
fmt.Println("n3", n3)
fmt.Println("a1", a1)
fmt.Println("a2", a2)
fmt.Println("a3", a3)
fmt.Println("b1", b1)
fmt.Println("b2", b2)
fmt.Println("b3", b3)
fmt.Println("c1", c1)
fmt.Println("c2", c2)
fmt.Println("c3", c3)
}
终端输出:
PS C:\Users\Alen\go\src\02\const> go build
PS C:\Users\Alen\go\src\02\const> .\const.exe
n1 100
n2 100
n3 100
a1 0
a2 1
a3 2
b1 0
b2 1
b3 3
c1 0
c2 100
c3 2