MST

星途 面试题库

面试题:Go中常量作用域相关基础

在Go语言中,包级别的常量和函数内部定义的常量在作用域上有什么不同?请举例说明。
39.7万 热度难度
编程语言Go

知识考点

AI 面试

面试题答案

一键面试
  1. 包级常量
    • 作用域:包级常量在整个包内可见,任何在该包内的函数、结构体等都可以访问它。
    • 示例
package main

import "fmt"

// 包级常量
const Pi = 3.14159

func main() {
    fmt.Println(Pi)
    calculateArea()
}

func calculateArea() {
    // 可以在包内的其他函数中访问包级常量Pi
    area := Pi * 2 * 2
    fmt.Println("Area:", area)
}
  1. 函数内常量
    • 作用域:函数内定义的常量仅在该函数内部可见,其他函数无法访问。
    • 示例
package main

import "fmt"

func main() {
    func() {
        // 函数内常量
        const localVar = "Inside inner function"
        fmt.Println(localVar)
    }()
    // 下面这行代码会报错,因为localVar作用域仅限于内部匿名函数
    // fmt.Println(localVar)
}