有点好玩,感觉以

  1. C语言为基础,有main方法,printf函数,%d, %s 占位符,还支持指针
  2. 又借鉴了JavaScript的var const变量申明
  3. 同时也有python的自动类型匹配,import
  4. 既可以用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)
}