Go是静态类型语言,有多种声明变量的方式。最常见的是短声明 :=,它会推断类型。Go的基本类型包括数字、字符串、布尔值等。
声明变量
go
x =
y =
z
name :=
count :=
a, b = ,
Pi =
:= 是函数内部的习惯用法——简洁且具有类型推断。var 用于包级别,以及当你想要显式类型或仅初始化为零值时使用。
// integers
int, int8, int16, int32, int64 // signed (int is platform-sized, usually 64-bit)
uint, uint8, ..., uint64 // unsigned
byte // alias for uint8
rune // alias for int32 — a Unicode code point
// floating point
float32, float64 // float64 is the default for decimals
// others
string // immutable UTF-8 text
bool // true / false
complex64, complex128 // complex numbers
var i int // 0
var f float64 // 0.0
var s string // "" (empty)
var b bool // false
var p *int // nil
Go的一个重要特性:每个声明的变量都会自动获得合理的零值——不存在未定义/垃圾值。这使代码更安全,也意味着你通常可以跳过显式初始化。
var i int = 42
var f float64 = float64(i) // MUST convert explicitly — no implicit coercion
var u uint = uint(f)
// i + f → ❌ compile error: mismatched types
Go要求显式类型转换——它从不隐式混合类型,防止了一类微妙的bug。
理解Go的变量声明和类型是编写任何Go代码的基础。
习惯用法的:=短声明和类型推断使代码简洁,而var和常量各司其职。
零值保证(每个变量都被安全初始化)是Go的一个独特而重要的特性,它消除了未初始化变量的bug,并影响习惯用法的形成(例如,零值结构体通常是可用的)。
Go坚持显式类型转换(无隐式强制转换)是一个有意的安全选择,防止了其他语言允许的那种无声的数值bug。
了解基本类型(特别是用于Unicode的rune、byte,以及int/float64是默认值)是每天都需要的基本知识。
一个包含详细解答的 IT 面试题库——从初级到高级。
捐赠