MST
星途 面试题库

面试题:Go中变量声明的多种方式及适用场景

请阐述在Go语言里,变量声明有哪几种方式,例如使用var关键字、简短声明方式等,并说明每种方式的适用场景。
42.7万 热度难度
编程语言Go

知识考点

AI 面试

面试题答案

一键面试
  1. 使用var关键字声明变量
    • 标准声明格式var 变量名 类型,例如:
    var num int
    
    • 适用场景:适用于需要明确指定变量类型,特别是在变量初始化值类型不明确,或者在函数外部声明变量时。比如在包级别的变量声明,一般使用var关键字声明。例如:
    package main
    var globalVar int
    
    • 带初始化值声明格式var 变量名 类型 = 值,例如:
    var str string = "hello"
    
    • 适用场景:当需要在声明变量时就赋予初始值,且希望明确指定变量类型的场景。比如在进行类型转换相关操作,需要明确变量类型时使用。例如:
    var num float64 = float64(5)
    
    • 省略类型声明格式var 变量名 = 值,例如:
    var num = 10
    
    • 适用场景:当Go语言的类型推断能够根据初始值准确推断出变量类型时使用。这种方式简洁,在函数内部经常使用。
  2. 简短声明方式(:=
    • 格式变量名 := 值,例如:
    num := 20
    
    • 适用场景:只能在函数内部使用,用于快速声明并初始化一个新变量。如果变量已经声明过,使用:=会导致编译错误。它适用于在函数内部局部变量的快速声明和初始化,代码简洁高效。例如在循环中声明计数器变量:
    for i := 0; i < 10; i++ {
        // 循环体
    }
    
  3. 声明多个变量
    • 使用var关键字var (变量名1 类型1变量名2 类型2),例如:
    var (
        num1 int
        num2 float64
    )
    
    • 适用场景:适用于一次声明多个不同类型的变量,尤其是在函数外部或者需要对多个变量进行统一管理声明时。
    • 带初始化值var (变量名1 类型1 = 值1变量名2 类型2 = 值2),例如:
    var (
        num1 int = 1
        num2 float64 = 2.5
    )
    
    • 适用场景:当需要在声明多个变量的同时赋予初始值,且明确每个变量类型时使用。
    • 简短声明多个变量变量名1, 变量名2 := 值1, 值2,例如:
    num1, num2 := 3, 4.5
    
    • 适用场景:在函数内部,当需要同时声明并初始化多个新变量时使用,简洁高效。例如在函数返回多个值时接收这些值:
    func addAndMultiply(a, b int) (int, int) {
        return a + b, a * b
    }
    sum, product := addAndMultiply(2, 3)