MST

星途 面试题库

面试题:Go语言中变量初始化的常见方式及区别

请列举Go语言中变量初始化的至少三种常见方式,并说明它们在使用场景、语法特点上有什么区别。例如var声明、简短声明等。
50.3万 热度难度
编程语言Go

知识考点

AI 面试

面试题答案

一键面试
  1. var声明并初始化

    • 语法特点var 变量名 类型 = 值,类型必须明确指定。例如:
    var num int = 10
    
    • 使用场景:适用于需要明确指定变量类型,或者变量初始化逻辑较为复杂,需要在声明时就确定初始值的场景。比如在一些对数据类型要求严格的计算场景,或者在与外部接口交互,需要特定类型数据时。
  2. 简短声明

    • 语法特点变量名 := 值,由编译器自动推导变量类型。例如:
    str := "hello"
    
    • 使用场景:在局部作用域中,当变量类型可以由初始值明显推导出来,且代码简洁性要求较高时使用。这在函数内部快速定义和初始化临时变量非常方便。但要注意,简短声明左边至少有一个新变量,否则是赋值操作。
  3. var声明多个变量并初始化

    • 语法特点var (变量名1 类型 = 值1 变量名2 类型 = 值2),可以一次声明多个变量并初始化。例如:
    var (
        a int = 5
        b string = "world"
    )
    
    • 使用场景:适用于需要声明多个相关变量的场景,使代码结构更清晰。比如在初始化一组配置参数时,将它们集中声明和初始化。
  4. 使用make初始化切片、映射和通道

    • 语法特点
      • 切片:切片名 := make([]类型, 长度, 容量),容量参数可选。例如:s := make([]int, 5, 10)
      • 映射:映射名 := make(map[键类型]值类型)。例如:m := make(map[string]int)
      • 通道:通道名 := make(chan 类型)。例如:ch := make(chan int)
    • 使用场景:专门用于初始化Go语言中引用类型(切片、映射和通道)。切片初始化用于确定初始长度和容量,映射初始化用于创建一个空的键值对集合,通道初始化用于创建用于 goroutine 之间通信的通道。