Golang 语法中有哪些语法糖?

Golang中存在以下语法糖:

  1. 在条件判断中使用短变量声明
if x := f(); x == true {
   // ... 
}

等同于

var x 
if (x = f()) == true {
   // ...
}
  1. 在 for 循环中使用结构化赋值
for i, x := range array {
   ...
}
  1. Type inference 类型推导
var x = "hello"   

等同于

var x string = "hello"
  1. 函数返回值命名
func f() (result string) {
   result = "hello"
   return
}

等同于

func f() string {
   ...
}
  1. 字符串续行
str := "very very " +  
       "long string"
  1. 定义匿名函数时省略函数名
func(a, b int) int {return a + b}

等同于

function (a, b int) int {
    return a+ b
}
  1. 多个导入合并为一个import
import "math" 
import "time"

等同于

import (
   "math"
   "time" 
)

总的来说,Golang 提供了如下语法糖:

  1. 在条件中使用短变量声明
  2. 在for循环中使用结构化赋值
  3. 类型推导
  4. 函数返回值命名
  5. 字符串续行
  6. 定义匿名函数时省略函数名
  7. 多个import合并为一个import

这些语法糖可以提高Golang代码的简洁程度。但不改变其本质语义,只是方便了开发。