变量&常量
Java: 声明变量, 权限由修饰符控制
//私有
private string name;
private int age;
private boolean isOk;
//公共
public string name;
public int age;
public boolean isOk;
go: 声明变量, 权限由变量名首字母大小写控制
//私有
var name string
var age int
var isOk bool
//公共
var Name string
var Age int
var IsOk bool
&&
var (
name string
age int
isOk bool
)
go:
//声明并初始化
var name string = "Q1mi"
var age int = 18
&&
var name = "Q1mi"
var age = 18
&&
var name, age = "Q1mi", 20
&&
n := 10
m := 200 // 此处声明局部变量m
Java: 声明常量final
private final double pi = 3.1415;
private final int e = 2;
go: 声明常量const
//常量声明时必须初始化
const pi = 3.1415
const e = 2
&&
const (
pi = 3.1415
e = 2
)
&&
const (
n1 = 100
n2
n3
)
//上面示例中,常量n1、n2、n3的值都是100
匿名变量
Java单个方法无法返回多个返回值,而go可以,如果这时只需要用到返回值中的某一个,那么就可以使用 “_ ”来接收其他不用的值,这些匿名变量不占用命名空间,不会分配内存。
在使用多重赋值时,如果想要忽略某个值,可以使用匿名变量(anonymous variable)。 匿名变量用一个下划线 _ 表示,例如
go:
func foo() (int, string) {
return 10, "Q1mi"
}
func main() {
x, _ := foo()
_, y := foo()
fmt.Println("x=", x)
fmt.Println("y=", y)
}
iota
iota是go语言的常量计数器,只能在常量关键字(const)的表达式中使用。
iota在const关键字出现时将被重置为0。const中每新增一行常量声明将使iota计数一次(iota可理解为const语句块中的行索引)。 使用iota能简化定义,在定义枚举时很有用。
go:
const (
n1 = iota //0
n2 //1
n3 //2
n4 //3
)
//使用_跳过某些值
const (
n1 = iota //0
n2 //1
_
n4 //3
)
//iota声明中间插队
const (
n1 = iota //0
n2 = 100 //100
n3 = iota //2
n4 //3
)
const n5 = iota //0
go: 几个常见的iota示例