有点好玩,感觉以
- C语言为基础,有main方法,printf函数,%d, %s 占位符,还支持指针
- 又借鉴了JavaScript的var const变量申明
- 同时也有python的自动类型匹配,import
- 既可以用go run 解释执行,又可以用go build编译成exe 二进制文件执行,挺有意思。
package main import "fmt" func main(){ var a int = 4 var b int32 var c float32 var ptr *int fmt.Printf("a变量类型为:%T\n",a) fmt.Printf("b变量类型为:%T\n",b) fmt.Printf("c变量类型为:%T\n",c) ptr = &a fmt.Printf("a变量的地址为:%d\n", &a) fmt.Printf("ptr的值为:%d\n",ptr) }
package main import "fmt" func main(){ var a int = 100 var b int = 200 fmt.Printf("交换前a的值为:%d\n", a) fmt.Printf("交换前b的值为:%d\n", b) swap(&a, &b) fmt.Printf("交换后a的值为:%d\n", a) fmt.Printf("交换后b的值为:%d\n", b) } func swap(x, y *int) int{ //x, y都是指针类型 var temp int //temp int类型 temp = *x //地址解引用 *x = *y *y = temp return temp }
废了老劲了,用指针搞定引用传递,被一秒废功
package main import "fmt" func main(){ var a int = 100 var b int = 200 fmt.Printf("交换前a的值为:%d\n", a) fmt.Printf("交换前b的值为:%d\n", b) a , b = b, a fmt.Printf("交换后a的值为:%d\n", a) fmt.Printf("交换后b的值为:%d\n", b) }