MST

星途 面试题库

面试题:Go语言中变量声明与初始化的多种方式及适用场景

请阐述Go语言中变量声明的不同方式,比如使用var关键字、简短声明 := 等,并说明每种方式在不同场景下的适用情况。同时,给出示例代码展示如何正确使用这些声明与初始化方式。
41.0万 热度难度
编程语言Go

知识考点

AI 面试

面试题答案

一键面试
  1. 使用var关键字声明变量
    • 方式一:声明变量并指定类型,不初始化
      • 适用场景:当变量稍后再赋值时使用。
      • 示例代码
package main

import "fmt"

func main() {
    var num int
    num = 10
    fmt.Println(num)
}
- **方式二:声明变量并指定类型,同时初始化**
    - **适用场景**:当变量声明时就已知初始值,且希望明确指定类型增强代码可读性时使用。
    - **示例代码**:
package main

import "fmt"

func main() {
    var str string = "Hello"
    fmt.Println(str)
}
- **方式三:根据初始值自动推导类型**
    - **适用场景**:当类型显而易见,且不想显式写出类型时使用。
    - **示例代码**:
package main

import "fmt"

func main() {
    var num = 20
    fmt.Println(num)
}
  1. 简短声明:=
    • 适用场景:一般用于局部变量声明并初始化,简洁方便。但注意,它只能在函数内部使用,并且左边的变量至少有一个是新声明的。
    • 示例代码
package main

import "fmt"

func main() {
    name := "Go"
    fmt.Println(name)
}
  1. 声明多个变量
    • 使用var关键字声明多个变量
      • 方式一:同时声明多个同类型变量
        • 适用场景:多个变量类型相同且希望统一声明。
        • 示例代码
package main

import "fmt"

func main() {
    var a, b, c int
    a = 1
    b = 2
    c = 3
    fmt.Println(a, b, c)
}
    - **方式二:同时声明多个不同类型变量**
        - **适用场景**:多个变量类型不同但希望在同一处声明。
        - **示例代码**:
package main

import "fmt"

func main() {
    var (
        num  int    = 10
        str  string = "Go"
        flag bool   = true
    )
    fmt.Println(num, str, flag)
}
- **使用简短声明`:=`声明多个变量**
    - **适用场景**:在函数内部同时声明并初始化多个局部变量,简洁高效。
    - **示例代码**:
package main

import "fmt"

func main() {
    a, b := 1, "Go"
    fmt.Println(a, b)
}