Go 基础语法
// 显式声明var name string = "Go"
// 类型推断var age = 15
// 短变量声明(函数内)lang := "Go"
// 多变量声明x, y := 1, 2
// 常量const Pi = 3.14159基本数据类型
Section titled “基本数据类型”// 整数var i int = 42var i64 int64 = 1e9
// 浮点数var f float64 = 3.14
// 字符串s := "Hello, Go"raw := `多行字符串`
// 布尔b := true
// 数组与切片arr := [3]int{1, 2, 3} // 固定长度数组slice := []int{1, 2, 3} // 动态切片slice = append(slice, 4)// if-elseif age >= 18 { fmt.Println("成年")} else { fmt.Println("未成年")}
// if 带初始化语句if err := doSomething(); err != nil { log.Fatal(err)}
// for 循环(Go 只有 for)for i := 0; i < 10; i++ { fmt.Println(i)}
// while 风格for x > 0 { x--}
// range 迭代for i, v := range slice { fmt.Printf("索引: %d, 值: %d\n", i, v)}
// switch(自动 break)switch os := runtime.GOOS; os {case "darwin": fmt.Println("macOS")case "linux": fmt.Println("Linux")default: fmt.Println(os)}结构体与方法
Section titled “结构体与方法”type User struct { Name string Age int}
// 方法func (u User) Greet() string { return fmt.Sprintf("Hi, I'm %s", u.Name)}
// 指针接收者(可修改原对象)func (u *User) Birthday() { u.Age++}
user := User{Name: "Alice", Age: 30}fmt.Println(user.Greet())user.Birthday()type Writer interface { Write([]byte) (int, error)}
// 隐式实现(无需 implements 声明)type Buffer struct{ data []byte }
func (b *Buffer) Write(p []byte) (int, error) { b.data = append(b.data, p...) return len(p), nil}
var w Writer = &Buffer{}