常量生成器
关键字 iota
, 创建一系列相关的值,省略逐个定义。
语法规则
const (
常量1 [常量类型] = iota
常量2
常量3
常量4
常量5
...
)
例子
package main
const (
Sunday int = iota
Monday // 1
Tuesday // 2
Wednesday // 3
Thursday // 4
Friday // 5
Saturday // 6
)
// $ go run main.go
// 输出如下
/**
0
1
2
3
4
5
6
*/
在上面的声明中,Sunday 的值为 0, Monday 的值为 1, 以此类推。
自定义类型
关键字 type
, 主要用来对同一种类型进行抽象。
语法规则
type 自定义类型名称 具体类型
# 例子
type Number int
同时定义多个自定义类型
package main
type (
Number int
Name string
Has bool
)
嵌套定义
可以基于已有的自定义类型,定义一个新的自定义类型。
package main
type (
Number int
Name string
Has bool
)
type Number2 Number
使用规则
和变量使用规则一样。
package main
type (
Number int
Name string
Has bool
)
func main() {
var x Number = 1024
var n Name = "abc"
var h Has = true
println(x)
println(n)
println(h)
}
// $ go run main.go
// 输出如下
/**
1024
abc
true
*/
运算符优先级
从高到低
-
||
-
&&
-
<-
(通道操作符,后面会讲到,暂时先忽略)
-
==
!=
<
<=
>
>=
-
+
-
|
^
-
*
/
%
<<
>>
&
&^
-
^
!
最佳实践
通过使用括号来提升某个表达式的运算优先级,提高代码可读性。
例子
package main
func main() {
println(((1+2)*3+3)/4 + 5)
}
// $ go run main.go
// 输出如下
/**
8
*/