有点好玩,感觉以
- 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)
}