【语言基础】Go 基本语法与控制结构

大家好,欢迎来到大弦子的课堂,本节我们通过几个代码示例来学习Go 基本语法与控制结构

package main

import "fmt"

const Pi = 3.14

const (
    Monday    = iota // 0
    Tuesday          // 1
    Wednesday        // 2
    Thursday         // 3
    Friday           // 4
    Saturday         // 5
    Sunday           // 6
)

//数值类型 int int8 int16 int32 int64 uint uint8 uint16等等

var isOk bool = true
var years int = 2025
var pi float32 = 3.14
var name string = "张三"
var X complex128 = 1 + 2i

var (
    c int    = 20
    d string = "world"
)

func main() {

    fmt.Println("圆周率是", Pi)
    fmt.Println("周一到周日是", Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday)

    var a int = 10
    b := "hello"
    e, f, g := 30, "ok", 3.14

    fmt.Println("a的值是", a)
    fmt.Println("b的值是", b)
    fmt.Println("c的值是", c)
    fmt.Println("d的值是", d)
    fmt.Println("e的值是", e)
    fmt.Println("f的值是", f)
    fmt.Println("g的值是", g)

    //不同数据类型的值
    fmt.Println("isOk的值是", isOk)
    fmt.Println("years的值是", years)
    fmt.Println("pi的值是", pi)
    fmt.Println("name的值是", name)
    fmt.Println("X的值是", X)

    aa := 5 + 3*2
    fmt.Println("aa的值是", aa)
    bb := (aa > 0) && false
    fmt.Println("bb的值是", bb)
    cc := 1 << 3
    fmt.Println("cc的值是", cc)

    //if-else
    age := 70
    if age >= 18 {
        fmt.Println("成年")
    } else {
        fmt.Println("未成年")
    }

    //switch-case
    switch age {
    case 60:
        fmt.Println("花甲")
    case 70:
        fmt.Println("古稀")
    default:
        fmt.Println("不知年龄")
    }

    //条件循环
    for i := 1; i < 10; i++ {
        fmt.Println("i的值:i=", i)
    }

    //范围循环
    var mm []int = []int{111, 222, 333, 444}
    for _, m := range mm {
        fmt.Println("mm的值:m=", m)
    }
}

 

案例

  1. 常量和变量:
    Go中的常量使用const声明,不可修改,常用于固定值,支持iota生成器自动递增(从0开始,每行增1)
    变量使用var或:=声明,可修改。
    go

    package main
    import "fmt"
    
    const Pi = 3.14159  // 无类型浮点常量
    const (
        Sunday = iota   // 0
        Monday          // 1
        Tuesday         // 2
    )
    const MaxSize int64 = 1024  // 有类型整数常量
    
    func main() {
    	var a int = 10  // 显式声明
    	b := "Hello"    // 类型推断
    	const Pi = 3.14 // 常量
    	fmt.Println(a, b, Pi)
    }

    输出:10 Hello 3.14。此例展示类型推断和常量不可变性。

  2. 控制结构 - if 和 for
    go

    func main() {
    	x := 5
    	if x > 0 {  // 无需括号
    		fmt.Println("Positive")
    	}
    	for i := 0; i < 3; i++ {  // 传统 for 循环
    		fmt.Println(i)
    	}
    }

    输出:Positive\n0\n1\n2。展示初始化语句和循环形式。

  3. switch 和 range
    go

    func unhex(c byte) byte {
    	switch {
    	case '0' <= c && c <= '9':
    		return c - '0'
    	default:
    		return 0
    	}
    }
    for key, value := range m {  // 遍历 map
    	fmt.Printf("%s: %v\n", key, value)
    }

    此例用于字符转换和迭代,突出 switch 的条件灵活性和 range 的便利。

作者:admin  创建时间:2025-08-18 14:36
最后编辑:admin  更新时间:2025-08-21 01:02