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 }