2.3【语言基础】Go 基本语法与控制结构详解
【语言基础】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)
}
}
案例
常量和变量::
Go中的常量使用const声明,不可修改,常用于固定值,支持iota生成器自动递增(从0开始,每行增1)
变量使用var或:=声明,可修改。
gopackage 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。此例展示类型推断和常量不可变性。控制结构 - if 和 for:
gofunc main() { x := 5 if x > 0 { // 无需括号 fmt.Println("Positive") } for i := 0; i < 3; i++ { // 传统 for 循环 fmt.Println(i) } }
输出:Positive\n0\n1\n2。展示初始化语句和循环形式。switch 和 range:
gofunc 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
最后编辑:admin 更新时间:2025-08-21 01:02