docs(day01): 完善Go语言基础教程内容 - 添加指针概念章节,包含指针的基本概念、使用场景和示例代码 - 补充基础类型章节的零值说明,解释各种基础类型的默认值 - 扩展运算符章节,增加逻辑运算符和位运算符的详细说明 - 更新README目录结构,添加新章节的导航链接 - 添加指针相关的演示图表和示例代码文件 ```
50 lines
1.2 KiB
Go
50 lines
1.2 KiB
Go
package main
|
||
|
||
import (
|
||
"flag"
|
||
"fmt"
|
||
)
|
||
|
||
func main() {
|
||
// a := 10
|
||
// b := 20
|
||
// c := sum(a, b)
|
||
// println("a + b =", c)
|
||
|
||
// // 使用指针作为函数参数
|
||
// // 0x14000108020
|
||
// var result int
|
||
|
||
// // &result (类型安全的指针) 东西叫指针 有类型约束,首GC印象的 地址
|
||
// fmt.Println("result 地址 =", &result)
|
||
// sumWithPointer(a, b, &result)
|
||
// println("a + b =", result)
|
||
|
||
// // uintptr 是无类型指针,可以存放任意指针的地址值, 裸内存地址, 不安全指针, 可能随时被回事,成为一个无效地址
|
||
// // 非法使用 uintptr 导致程序崩溃
|
||
// fmt.Println("result 地址 uintptr =", uintptr(unsafe.Pointer(&result)))
|
||
|
||
// 获取用户输入
|
||
// var i int
|
||
// fmt.Println("请输入一个整数:")
|
||
// fmt.Scan(&i) // 把输入写入 i
|
||
// fmt.Println("你输入的整数是:", i)
|
||
|
||
// 命令行参数解析
|
||
// --port 9090
|
||
var port int
|
||
flag.IntVar(&port, "port", 8080, "server port") // 命令行参数绑定到变量
|
||
flag.Parse()
|
||
fmt.Println("服务器端口号是:", port)
|
||
}
|
||
|
||
func sum(a int, b int) int {
|
||
return a + b
|
||
}
|
||
|
||
// 这个函数没有Retrun
|
||
// *int 就是指针类型, 传递是 int这种类型的变量的地址
|
||
func sumWithPointer(a int, b int, c *int) {
|
||
*c = a + b
|
||
}
|