go语言之变量

1、go的hello world

package main
//申明开头,表示代码所属包,申明为main包,可以编译为二进制程序
import (
   "fmt"
)
//导入格式化包,如果引入了包,则必须要用,不然会报错,主要为提高效率,追求极致

func main() {
   fmt.Println("Hello, World!")
}
//左边的大括号不能自己单独启一行,右边的大括号不影响


//单行注释
/*
duo多行zhus注释
 */


 //go区分大小写
 //go的变量名以下划线和字母开头

  

2、go的变量申明

package main

import "fmt"
func main() {

	//申明变量
	var v1 int
	var v2 int

	var v3,v4 int

	var (
		v5 int
		v6 int
	)

	//默认都是零值
	fmt.Println(v1,v2,v3,v4,v5,v6)
}

  

3、go变量的初始化

package main

import (
	"fmt"
	"reflect"
)
func main() {
	//初始化变量

	//方式1
	var v1 int = 10

	//方式2
	var v2 = 20

	//方式3
	v3 := 30

	fmt.Println(v1,v2,v3)
	fmt.Println("v3的类型为",reflect.TypeOf(v3))
	//利用反射查看v3的类型
}

  

package main

import "fmt"
func main() {
	//直接赋值
	var v1 int
	v1 = 10

	//申明并赋值,这种方式只能在函数里用
	v2 := 20
	v3 := 30

	//多重赋值
	var v4,v5,v6 int
	v4,v5,v6 = 40,50,50

	fmt.Println(v1,v2,v3,v4,v5,v6)

}

  

4、go变量的赋值

package main

import "fmt"
func main() {
	//直接赋值
	var v1 int
	v1 = 10

	//申明并赋值
	v2 := 20
	v3 := 30

	//多重赋值
	var v4,v5,v6 int
	v4,v5,v6 = 40,50,50

	fmt.Println(v1,v2,v3,v4,v5,v6)

}

  

5、匿名变量

package main

import "fmt"

//(int,string),函数的返回值是2个,一个是int一个是字符串
func test() (int,string) {
	return 444,"golang"
}

func main() {
	//i, s := test()
	//fmt.Println(i,s)

	//test函数返回两个,在golang中,如果变量没有被使用,则会飘红,这里如果我们只用第二个变量,则可以用一个下划线来做匿名变量
	//主要用来占位,这样,这个变量就算没有被使用,代码也不会飘红
	_, s := test()
	fmt.Println(s)
}

  

6、常量和枚举

package main

import "fmt"

//定义常量,必须要给一个确定的值,可确定的值比如 数字,字符串,布尔值
const filename  = "chy.text"

//这样就会报错,因为a是一个变量,不是一个确定的值
//var a string
//a = "abc"
//const testname  = a

func a()  {
	const (
		v1 = "aaa"
		v2 = "bbb"
		filename  = "chr.text"
	)

	//就近原则
	fmt.Println(filename)
}
func b()  {

	//定义普通的枚举类型
	const (
		python = "aaa"
		java = "bbb"
		perl = "ccc"
	)
	fmt.Println(python,java,perl)
}

func c()  {
	//定义自增的枚举类型
	//iota代表自增,从0开始,也叫做常量生成器
	const (
		test1 = iota
		test2
		test3
	)
	fmt.Println(test1,test2,test3)
}

func d()  {
	//iota还可以参与计算,下面的例子是位运算
	const (

		b = 1 << (10*iota)
		//1 * 2 ^ (10 * iota)
		
		kb
		mk
		gb
		//tb
		//pb
	)
	fmt.Println(b,kb,mk,gb)
}

func main() {
	//a()
	//b()
	//c()
	d()
}

  

猜你喜欢

转载自www.cnblogs.com/bainianminguo/p/10835837.html