首页 > 编程语言 > 详细

【Go语言】【5】变量初始化及赋值

时间:2015-02-24 23:29:35      阅读:383      评论:0      收藏:0      [点我收藏+]

在真正的编码过程中要使用一个变量,必须先声明然后才能使用,GO语言也不例外

1、声明变量

var postCode int    //声明一个整型变量postCode

var phoneNum int    //声明一个整型变量phoneNum

var name string     //声明一个字符串变量name

var address string  //声明一个字符串变量address

接下来我们在main()方法直接打印一下各个值分别是多少:技术分享

从上面可以看到尽管我们只是声明了一个变量,但GO帮我们给这些变量自动初始化一个缺省值,其中整型的缺省值为0字符串的缺省值为空串


【备注】:

有过其它语言的开发经验的读者都知道,像上面变量声明写成四行,不简洁,我们是否可以这写

var postCode, phoneNum int

var name, address string

当然可以,你可要知道GO语言是适合比较懒惰的程序员的程序哟 :)



2、初始化

若GO自动初始化的缺省值不是我们想要的,我们完全可以在声明的同时对变量进行初始化

var postCode int = 252039

var phoneNum int = 13126718111

var name string = "qingke"

var address string = "Shenzhen City, Guangdong Province"

再打印一下各个值分别是多少:

技术分享

OK,和预期的一样。我们能否也简化一下呢?答案是:不光能简化还有很多玄机呢



玄机1:去掉变量后面的类型

var postCode = 252039

var phoneNum = 13126718111

var name = "qingke"

var address = "Shenzhen City, Guangdong Province"

ctrl+b,回车运行一下,看是否有报错
技术分享

GO很贴心,告诉我们这样也可以使用


玄机2:同类型的写在一行并分别赋值

var postCode, phoneNum = 252039, 13126718111

var name, address = "qingke", "Shenzhen City, Guangdong Province"

ctrl+b,回车运行一下,看是否有报错

技术分享GO依旧很贴心


玄机3:直接去除变量标识

postCode, phoneNum := 252039, 13126718111

name, address := "qingke", "Shenzhen City, Guangdong Province"

ctrl+b,回车运行一下,看是否有报错

技术分享

读者可能已关注到,把var删除同时=变为:=


3、变量赋值

在GO语法中,变量初始化和变量赋值是两个不同的概念,下面就为声明一个变量之后的赋值过程:

var name string

name = "qingke"

举例:

假如变量a和变量b都是整型,其中a的值为10,b的值为12,写程序交换a和b的值

var a, b int

a, b = 10, 12 // 变量赋值

fmt.Println("a = ", a, " b = ", b)

a, b = b, a  // a和b的值互换

fmt.Println("a = ", a, " b = ", b)

技术分享

首次接触GO的读者可能发现,数字交换时竟然没有引入中间变量!是的,GO就是这么任性


4、思考题

思考1:

var a int // 定义变量a

a := 23  // 定义并初始化变量a

在同一个方法体中写这段代码会怎么样呢?换句话讲,使用:=是否意味着变量就没有定义呢?

技术分享

从运行结果来看,使用:=变量的定义和初始化同时进行,所以提示没有新的变量出现,这里的a命名冲突


思考2:

var a int32 = 32   // 定义变量a同时初始化

b := 32         // 定义变量b同时初始化


fmt.Println(a == b) // 思考打印是true还是false?

技术分享

运行结果告诉我们int32和int不能直接比较,虽然a和b都是整型,但a是int32而b则被GO语言缺省设置为int,GO认为int32和int是两种不同类型,这里也可以看出GO是面向类型的

 

5、作业

整型的缺省值为0,字符串的缺省值为空串,哪么其它类型的缺省值分别是多少?

本文出自 “青客” 博客,请务必保留此出处http://qingkechina.blog.51cto.com/5552198/1615103

【Go语言】【5】变量初始化及赋值

原文:http://qingkechina.blog.51cto.com/5552198/1615103

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!