go语言的变量与常量的声明及使用

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

上一篇:Spingboot2.x集成Nacos配置中心DEMO


下一篇:Go 语言常量