常州妇幼做的无创 在哪个网站查广告发布包括哪些
文章目录
- 基本语法
 - 功能特点
 - 与var的区别
 - 适用场景
 - 注意事项
 
在 Go 语言中,短变量声明(Short Variable Declaration) 是一种简洁的变量声明方式,使用 := 运算符,可以自动推断变量类型。
基本语法
variableName := value
 
功能特点
1、自动类型推断:编译器会根据右侧的值自动推断变量类型。
x := 42      // int
y := "hello" // string
z := 3.14    // float64
 
2、只能用于局部变量:只能在函数或方法内部使用,不能在全局(包级别)使用。
 3、可以同时声明多个变量。
a, b := 1, "two"
 
4、至少声明一个新变量:在 := 左侧的变量中,至少有一个必须是新变量(未声明过的),否则会报错。
x := 10
x, y := 20, 30  // 正确,因为 y 是新变量
x, y := 40, 50  // 错误:no new variables on left side of :=
 
与var的区别
| 特性 | :=(短变量声明) | var 声明 | 
|---|---|---|
| 作用域 | 仅限函数内部 | 全局或局部均可 | 
| 类型推断 | 可自动推断 | 可自动推断 | 
| 显式类型声明 | 不可指定 | 可指定(var x int = 10) | 
| 多变量声明 | 支持(a, b := 1, 2) | 支持(var a, b = 1, 2) | 
| 重新声明限制 | 至少一个新变量 | 不能重复声明(同一作用域) | 
适用场景
1、函数内部快速声明变量
func main() {name := "Alice"  // 自动推断为 stringage := 30        // 自动推断为 intfmt.Println(name, age)
}
 
2、多返回值函数的接收
func getData() (int, string) {return 100, "OK"
}func main() {code, msg := getData()  // 自动推断 code(int), msg(string)fmt.Println(code, msg)
}
 
3、if、for 等语句中的临时变量
if n := 10; n > 5 {fmt.Println("n is greater than 5")
}
 
注意事项
1、不能在全局使用
package mainx := 10  // ❌ 错误:syntax error: non-declaration statement outside function bodyfunc main() {y := 20  // ✅ 正确
}
 
2、不能用于已声明的变量(除非至少一个新变量)
func main() {a := 10a := 20  // ❌ 错误:no new variables on left side of :=a, b := 20, 30  // ✅ 正确,因为 b 是新变量
}
 
3、类型一旦确定,不能更改
x := 10
x = "hello"  // ❌ 错误:cannot use "hello" (untyped string constant) as int value
