欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

第一节:变量的定义和使用

程序员文章站 2022-03-11 17:29:29
...

一、建立一个空的工程,开始go的第一课学习(使用goland编辑器,具体安装**可百度,go 版本 1.12.8)

1、建立一个basic.go文件。

第一节:变量的定义和使用

文件里面很简单,只有一个main函数

2、开始学习变量定义

  2-1、老规矩,"hello world"来一个

第一节:变量的定义和使用

点击左边绿色的三角按钮,运行,不出意外的话控制台就会打印出 "hello world",好!已经迈出了学习go的第一步!

 

2-2、包内部变量定义:

go语言没有全部变量的概念,只有包内部变量和函数内部变量。

方法一:

/* 包内部变量定义 */
/**
包内部变量定义,包内部变量定义不能使用 := 的方式
 */
//方法一
var aa int=456
var bb string="i am go"

var aa int =456:定义一个类型为int型的变量,并且赋值初始值为456

var bb string = "i am go":定义一个类型为string的变量,并且赋值初始值为 "i am go"

go的变量定义和其他语言有一点不一样(java,c,c#),go是先写变量名,再写变量类型,常规操作都是:int a = 456,据说go的开发者认为这样的定义更符合规范和人的思维,有过其他语言基础的人第一次接触有一点点别扭,稍微注意一下。

放法二:(稍微简单一点,变量比较多可以用这种)

//方法二
var (
 	aaa int=456
 	bbb string="i am go"
)

作用和第一种一样,但是可以省略var关键字,当变量很多时可以用这种方便一点。

 

2-3:放法内部变量定义(局部变量)

定义但不赋初始值:

/* 局部变量定义 */
/**
没有初始值的变量定义
 */
func variableZeroValue()  {
	var a int //go语言中,变量定义时,变量名在前,类型在后。
	var b string
	//未赋值时,int类型的值为0,字符串类型为空字符串
	fmt.Printf("%d,%q\n",a,b)
	
}

注意:没有赋初始值时,编译器会字段赋初始值。go不允许没有初始值的变量存在。

定义并且赋初始值:

/**
赋初始值的变量定义
 */
func variableInitialValue()  {
	var a int=1
	var c,d int= 2,3
	var b string="hello go"
	fmt.Println(a,b,c,d)
}
 

类型推断,省略类型关键字

使用推断类型,编译器会根据赋值的类型推断该变量的类型,包内部变量也可以这样写。

/**
类型推断,省略类型关键字
 */
func variableTypeDeduction()  {
	var a=1
	var c,d,e = 2,3,true
	var b="hello go"
	fmt.Println(a,b,c,d,e)
}

省略var关键字,用 :=代替 表示 声明并且赋值

/**
更简便的写法
省略var关键字,使用 := 定义并且赋值
*/
func variableShorter()  {
	a,b,c,d:=1,2,true,"hello"
	fmt.Println(a,b,c,d)
}

注意: := 放法不能用于包内部变量的定义,只能在放法内部变量定义使用!

最后统统输出一波:

func main() {
	fmt.Println("hello world")
	variableZeroValue()
	variableInitialValue()
	variableTypeDeduction()
	variableShorter()
	fmt.Println(aa,bb)
	fmt.Println(aaa,bbb)
}

控制台:

第一节:变量的定义和使用

第一个输出双引号,可以看出编译器的确给没有赋初始值的字符串变量赋值了空字符串,打印放法 :%q。

 

感觉记录的很罗嗦,其实有过一门语言基础的人看这些都是一目十行,可以直接略过,毕竟大同小异,但是我觉得既然是学习一门新的语言,还是从基础开始记录比较好,哪怕繁琐一点,枯燥一点,多写一次自己也能多消化一次,可能记录的中间有一些错误,希望自己以后能想起来或者发现,毕竟也是头一回学,go到底是怎么样的一门语言,还得慢慢学习!加油!