Golang变量和常量

变量的概念

变量相当于内存中一个数据存储空间的表示,通过变量名可以访问到变量值,变量是程序的基本单位。

在go语言中,变量声明必须使用,不使用会编译不通过。

变量的使用

(1)声明变量(定义变量)

一般使用 var 关键字声明变量

var 变量名 变量类型

(2)给变量赋值

可以在声明变量的时候,就赋值

var a int = 45

(3)使用变量

示例:

package main
import "fmt"
func main(){ 
	//定义变量
	var i int
	//给i赋值
	i = 10
	//使用变量
	fmt.Println("i = ",i) //i = 10
}

注意:

  • 指定变量类型,声明后若不赋值,则使用默认值
package main
import "fmt"
func main(){
	var i int
	fmt.Println("i = ",i) //i = 0
}
  • 根据值自动判定变量类型(类型推断)
package main
import "fmt"
func main(){
	var num = 1.1
	fmt.Println("num = ", num) //num = 1.1
}
  • 省略var关键字(常用的方法)
package main
import "fmt"
func main(){
	//这种方式等价 var name string  name = "tom"
	//:=中的:不能省略
	name := "tom"
	fmt.Println("name = ",name) //name =  tom
}

声明多个变量

声明多个变量

有时候需要一次性声明多个变量

package main

import "fmt"

func main(){
   //方式1
   //var n1, n2, n3 int
   //fmt.Println("n1=",n1, "n2=",n2, "n3=",n3)

   //方式2
   //var n1, name, n3 = 100, "tom", 20
   //fmt.Println("n1=",n1, "name=",name, "n3=",n3) // n1= 100 name= tom n3= 20

   //方式3
   n1, name, n3 := 100, "tom", 20
   fmt.Println("n1=",n1, "name=",name, "n3=",n3) // n1= 100 name= tom n3= 20
}

全局变量

在go中函数外部定义的变量就是全局变量。

package main

import "fmt"

//定义全局变量
var n1 = 100
var n2 = 200
var name = "tom"
func main(){
	//输出全局变量
	fmt.Println("n1=",n1,"n2=",n2,"name=",name) // n1= 100 n2= 200 name= tom
}

上述声明全局变量的方式可以改为一次性声明,方式如下:

package main

import "fmt"

//一次性声明多个全局变量
var (
	n3 = 300
	n4 = 400
	name2 = "jerry"
)
func main(){
	//输出全局变量
	fmt.Println("n3=",n3,"n4=",n4,"name2=",name2) // n3= 300 n4= 400 name2= jerry
}

常量

常量多用来定义程序运行期间不会改变的那些值。

使用 const 关键字声明常量:

const pi = 3.14
const e = 2.7182

示例:

package main

//常量
const pi = 3.14 //定义了常量后不能修改
func main(){
   //pi = 123 //编译不通过
}

批量声明常量:

//批量声明常量
const (
	statusOk = 200
	notFound = 404
)

const 同时声明多个常量时,如果省略了值则表示和上面一行的值相同。

package main

import "fmt"

//批量声明常量时,如果某一行声明后没有赋值,则默认和上一行相同
const (
   n1 = 100
   n2
   n3
)
func main(){
   fmt.Println("n1:",n1) //n1: 100
   fmt.Println("n2:",n2) //n2: 100
   fmt.Println("n3:",n3) //n3: 100
}

iota

iota是go语言的常量计算器,只能在常量的表达式使用,iota在const关键字出现时被重置为0,const中每新增一行常量,将使iota计数一次。使用iota能简化定义,在定义枚举时很有用。

package main

import "fmt"

const (
	a1 = iota //0
	a2 //1
	a3 //2
)
func main(){
	fmt.Println("a1:",a1) //a1: 0
	fmt.Println("a2:",a2) //a2: 1
	fmt.Println("a3:",a3) //a3: 2
}

iota常见的示例:

使用 _ 跳过某些值

const (
    n1 = iota //0
    n2  //1
    _   //2
    n4  //3
)

示例:

package main

import "fmt"

const (
	b1 = iota //0
	b2 = iota //1
	_ = iota  //2
	b3 = iota //3
)
func main(){
	fmt.Println("b1:",b1) //b1: 0
	fmt.Println("b2:",b2) //b2: 1
	fmt.Println("b3:",b3) //b3: 3
}

iota声明中插入值

package main

import "fmt"

const (
	c1 = iota //0
	c2 = 100  //100
	c3 = iota  //2
	c4  //3
)
func main(){
	fmt.Println("c1:",c1) //c1: 0
	fmt.Println("c2:",c2) //c2: 100
	fmt.Println("c3:",c3) //c3: 2
	fmt.Println("c4:",c4) //c4: 3
}

多个iota定义在一行

package main

import "fmt"

//多个常量声明在一行
const (
	d1, d2 = iota + 1, iota + 2
	d3, d4 = iota + 1, iota + 2
)

func main(){
	fmt.Println("d1:",d1) //d1: 1
	fmt.Println("d2:",d2) //d2: 2
	fmt.Println("d3:",d3) //d3: 2
	fmt.Println("d4:",d4) //d4: 3
}

定义数量级

package main

import "fmt"

const (
	_  = iota
	KB = 1 << (10 * iota)
	MB = 1 << (10 * iota)
	GB = 1 << (10 * iota)
	TB = 1 << (10 * iota)
	PB = 1 << (10 * iota)
)

func main() {
	fmt.Println(KB)  // 1024
	fmt.Println(MB)  // 1048576
	fmt.Println(GB)  // 1073741824
	fmt.Println(TB)  // 1099511627776
	fmt.Println(PB)  // 1125899906842624
}

Golang变量和常量

上一篇:01-eslint/vetur/preitter/vscode配置


下一篇:摄影师怎样让自己的作品有感觉技巧介绍