golang的声明语言如下:
keywork var_name type = value
1. keywork包括:var, const, type, func
2. var_name为变量名
3. type为变量的类型(与keywork中的type有区别)
看过的语言一就是没有类型, 一就是把类型放在变量名前面:表示这个变量是什么类型。
感觉很自然。 但是golang就反这个习惯。 把类型的位置反过来了。
在golang的手册上给出了两个原因:
原因一: Also functions read better and are consistent with other declarations.
说是与函数形式一致
golang中的函数的定义方式:
func sum(a, b int) int { return a + b }
golang中的变量的定义方式:
var p, q *int
大概的意思是:
keywork var_name type
函数的声明关键字 函数名 返回值类型
原因二: short declaration
golang中的变量声明有两种缩写方式:
var var_name = value
* 放在后面就方便缩写, 成为没有类型的写法?
* 不过看上去真的比较像javascript的声明
这时没有了类型, 类型为根据value的类型决定
还有一种缩写:
var_name := value
* 这就像python的声明了
顺眼了~~~~
想了一下, 感觉还是不错的. 当我们想声明一个变量时:1. 想到var ( 想到一个keywork, 因为它是语言的一部分 )
2. 想到变量的名称var_name
3. 想到变量的初始化. (1)这时的初始化golang是提供缩写方式的. 这就与平时的脚本一样. (2)当不想这时初始化时, 再定下这个变量的类型(毕竟golang是强类型语言)
也是很好的一种使用感觉.( 个人的感觉~~~~ )
BTW:: 其实上, golang在你没有初始化的情况下它会帮你初始化. 称为'zero value', 这个值会根据变量的类型变化. 如下:
The zero value depends on the type: integer 0, floating point 0.0, false, empty string, nil pointer, zeroed struct, etc.
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.