学习一门新的语言肯定是要从他的基本语法开始,语法构成了整个程序设计的基础,从语法中我们也可以看到这门语言的一些特性,但是话说回来,语法这东西,不同的语言大同小异,所以这也对语法的记忆造成了一定的难度,其实最好的方法应该是旁边有本书,随时可以拿过来查阅或者纠正。当然golang的语法也是这样,下面的一些是我学习七牛云存储团队许式伟等出的《Go语言编程》:
http://baike.baidu.com/link?url=vFrjnVJwITN0LaRbL7TmWYpq5V8JLWzL_NycAQy6w0e7JXP6a4bGm61ge0gGMU6jNFQO_RnuDGEQPh7YK9w4S_
语法部分的时候整理的一些,这本书对于新手入门还是挺有帮助的。为了日后可以及时回顾,所以记录下来了。为了避免长博客带来的阅读疲劳,这里尽量精简内容和分段。
本文主要包括:
1. Go中变量的声明,定义,赋值的方式以及匿名变量的概念。
2. Go中常量的定义和使用
3. Go中支持的内置数据类型及用法
主要就是这三部分,总体来说介绍了这么语言中最基本的元素,就像构成英文的26个英文字母一样。
1. Go中的变量
1.1 变量声明
在Go中变量的声明方式如下:
var 变量名 变量类型
其中var是一个go内置的关键字,用来进行“纯粹“的变量的声明,注意这里的纯粹的意思,它是有别于系统根据赋值时候的右值进行自动推断变量类型的一种方式,可以认为是定义一个绝对类型的变量。
比如:
var v1 int //定义一个整形v1
var v2 [10]int //定义一个整形数组v2
var v3 struct { //定义了一个结构体
...
f int
...
}
等等。所以习惯了c,c++,java等语言定义变量的同学还需要特殊记忆一下这个定义方式,不知道go为什么这样定义,我猜测可能是发明者之前使用的某种语言的习惯吧,但是我不知道是哪种,知道的读者也可以告诉我。(后来发现这里或许可以解释 为什么golang的语法是这样的:
http://blog.golang.org/gos-declaration-syntax)还有就是没必要书写一条语句的分号了,当然加了也不会报错。
同时为了避免重复书写var,也可以将多个变量定义在一起:
var {
v1 int
v2 string
}
1.2 变量的赋值,初始化
Go中变量的赋值很简单,就是在定义完一个变量后,对变量赋初始值,没有什么特殊的地方。比如:
var i int
i = 10 //定义之后对i赋初值
但是在go中有一个很大的改革就是,允许多重赋值,以往在c语言中,如果想对i,j两个变量赋值,需要两个等号,例如i=3, j=4;但是在go中可以直接写成:
i , j = 3, 4
很简单。如果你想交换i,j的值,也只需要写成:
i , j = j, i //这就是go创新的地方
变量的初始化和变量的赋值类似,只是在变量声明的时候直接给出赋值,在golang中支持三种初始化的方式:
var 变量 变量类型 = 初值
var 变量 = 初值
变量 := 初值
例如下面: