Golang中存在以下语法糖:
- 在条件判断中使用短变量声明
if x := f(); x == true {
// ...
}
等同于
var x
if (x = f()) == true {
// ...
}
- 在 for 循环中使用结构化赋值
for i, x := range array {
...
}
- Type inference 类型推导
var x = "hello"
等同于
var x string = "hello"
- 函数返回值命名
func f() (result string) {
result = "hello"
return
}
等同于
func f() string {
...
}
- 字符串续行
str := "very very " +
"long string"
- 定义匿名函数时省略函数名
func(a, b int) int {return a + b}
等同于
function (a, b int) int {
return a+ b
}
- 多个导入合并为一个import
import "math"
import "time"
等同于
import (
"math"
"time"
)
总的来说,Golang 提供了如下语法糖:
- 在条件中使用短变量声明
- 在for循环中使用结构化赋值
- 类型推导
- 函数返回值命名
- 字符串续行
- 定义匿名函数时省略函数名
- 多个import合并为一个import
这些语法糖可以提高Golang代码的简洁程度。但不改变其本质语义,只是方便了开发。