【Go语言圣经】2.2 声明

发布于:2025-03-17 ⋅ 阅读:(16) ⋅ 点赞:(0)

目标

了解

  1. Go 语言中的声明语句用于定义程序中的实体对象及其属性
    • var 声明:用于声明变量
    • const 声明:用于声明常量
    • type 声明:用于声明自定义类型
    • func 声明:用于声明函数
  2. 一个 Go 程序中,源文件通常包含以下几个部分:包声明、import语句、包级声明、局部声明
  3. 变量和类型的声明

概念

  1. 声明语句的基本概念
    • 声明的作用
      • 命名:为实体对象命名,如变量、常量、类型和函数。
      • 分配属性:同时定义对象的类型、初始值或其他属性。
    • 类型区分
      • 包级声明:在文件最外层声明的名字在整个包内都可见;如常量 boilingFboiling 示例中定义后,可在同一包的其他源文件中使用。
      • 局部声明:在函数内部声明的名字只在该函数内有效,如 main 函数中的变量 fc
  2. 文件结构和声明顺序
    • 每个 Go 源文件以 package 声明开始,接着是 import 语句,然后是包级别的声明。
    • 包级声明的顺序不影响程序的执行,因为编译器会统一处理,而函数内部的声明必须满足先声明后使用的规则。

要点(案例)

常量与变量的声明

// Boiling prints the boiling point of water.

package main

import "fmt"

const boilingF = 212.0

func main() {
    var f = boilingF
    var c = (f - 32) * 5 / 9
    fmt.Printf("boiling point = %g°F or %g°C\n", f, c)
    // Output:
    // boiling point = 212°F or 100°C
}

函数声明和调用

函数声明由函数名、参数列表、可选的返回值列表和函数体组成。如果函数没有返回值,则返回值列表可以省略。

// Ftoc prints two Fahrenheit-to-Celsius conversions.
package main

import "fmt"

func main() {
    const freezingF, boilingF = 32.0, 212.0
    fmt.Printf("%g°F = %g°C\n", freezingF, fToC(freezingF)) // "32°F = 0°C"
    fmt.Printf("%g°F = %g°C\n", boilingF, fToC(boilingF))   // "212°F = 100°C"
}
func fToC(f float64) float64 {
    return (f - 32) * 5 / 9
}

函数 fToC

  • 接收一个 float64 类型的参数,返回转换后的摄氏温度。
  • 通过调用该函数,main 函数实现了温度转换的复用,体现了函数封装和模块化设计的优势。

语言特性