Go 语言基础语法入门:变量、循环与条件语句实战

一只小鹿
一只小鹿
发布时间:2026-10-14| 1人浏览过
原创

Go 语言以简洁高效著称,适合构建可靠的软件系统。本教程从零开始,通过具体代码实例带你快速上手 Go 语言的基础语法。

Hello World 入门

编写一个输出 "hello world" 的程序是了解任何语言的起点。以下是一个标准的 Go 程序结构:

package main

import "fmt"

func main() {
    fmt.Println("hello world")
}

可以通过终端使用 go run 命令直接运行源码:
$ go run hello-world.go
若希望生成独立的可执行文件,可使用编译命令:
$ go build hello-world.go
编译后会在当前目录生成二进制文件,直接运行即可看到结果。

值类型(Values)

Go 支持多种内置数据类型,包括字符串、整数、浮点数和布尔值。以下是常见操作示例:

package main

import "fmt"

func main() {
    // 字符串拼接
    fmt.Println("go" + "lang")

    // 整型运算
    fmt.Println("1+1 =", 1+1)
    // 浮点运算
    fmt.Println("7.0/3.0 =", 7.0/3.0)

    // 布尔运算
    fmt.Println(true && false)
    fmt.Println(true || false)
    fmt.Println(!true)
}

变量声明(Variables)

Go 中的变量必须显式声明,这有助于在函数调用时进行类型检查。主要有两种声明方式:

  1. 标准声明:使用 var 关键字,可以指定类型或不指定。未赋值的变量会自动获得零值(如 int 的 0)。
  2. 短变量声明:使用 := 操作符,编译器会自动推断类型,这是最常用的简化写法。

代码示例如下:

package main

import "fmt"

func main() {
    var a string = "initial"
    var b, c int = 1, 2
    var d = true       // 自动推断为 bool
    var e int          // e 被赋值为零值 0

    f := "short"       // 短变量声明
    fmt.Println(a, b, c, d, e, f)
}

常量定义(Constants)

常量使用 const 关键字声明,可以是字符、字符串、布尔值或数字。数字常量具有任意精度,且在使用前无需指定类型,编译器会根据上下文自动推导。

package main

import "fmt"
import "math"

func main() {
    const s string = "constant"
    const n = 500000000

    // 常量表达式可保持高精度
    const d = 3e20 / n
    fmt.Println(d)                // 输出原始大数
    fmt.Println(int64(d))         // 转换为特定类型
    fmt.Println(math.Sin(n))      // 根据函数需求自动转换类型
}

循环结构(For)

for 是 Go 语言中唯一提供的循环结构。它提供了三种常见的用法:

  1. 基本循环:仅包含条件和更新步骤。
  2. 经典循环:包含初始化、条件和更新(类似 C/Java 的 for 循环)。
  3. 无限循环:无条件判断,需配合 break 或 return 退出。
package main

import "fmt"

func main() {
    i := 1
    for i <= 3 {            // 基本循环
        fmt.Println(i)
        i = i + 1
    }

    for j := 7; j <= 9; j++ { // 经典循环
        fmt.Println(j)
    }

    for {                   // 无限循环
        fmt.Println("loop")
        break               // 必须跳出,否则死循环
    }
}

条件语句(If/Else)

Go 使用 if 和 else 处理分支逻辑。if 后面的括号不是必须的,但代码块必须用花括号括起来。此外,可以在条件表达式中直接声明局部变量,其作用域仅限于该 if-else 块内。

package main

import "fmt"

func main() {
    if 7%2 == 0 {
        fmt.Println("7 is even")
    } else {
        fmt.Println("7 is odd")
    }

    // 条件中声明变量
    if num := 9; num < 0 {
        fmt.Println(num, "is negative")
    } else if num < 10 {
        fmt.Println(num, "has 1 digit")
    } else {
        fmt.Println(num, "has multiple digits")
    }
}

注意:Go 没有三目运算符(ternary operator),需使用完整的 if-else 结构实现。

多路选择(Switch)

switch 用于根据多个条件分支执行不同逻辑,替代冗长的 if-else if 链。它的优势在于:
1. 支持多值匹配(如 case time.Saturday, time.Sunday)。
2. 默认情况 default 处理未匹配项。
3. 无条件的 switch 可直接当作 if-else 使用。

package main

import "fmt"
import "time"

func main() {
    i := 2
    switch i {
    case 1:
        fmt.Println("one")
    case 2:
        fmt.Println("two")
    default:
        fmt.Println("other")
    }

    // 无条件 Switch
    t := time.Now()
    switch {
    case t.Hour() < 12:
        fmt.Println("before noon")
    default:
        fmt.Println("after noon")
    }
}

以上就是 Go 语言基础语法的详细内容,更多关于 Go 语言进阶技巧的资料请关注本站其它相关文章!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。