1、go的hello world
package main //申明开头,表示代码所属包,申明为main包,可以编译为二进制程序 import ( "fmt" ) //导入格式化包,如果引入了包,则必须要用,不然会报错,主要为提高效率,追求极致 func main() { fmt.Println("Hello, World!") } //左边的大括号不能自己单独启一行,右边的大括号不影响 //单行注释 /* duo多行zhus注释 */ //go区分大小写 //go的变量名以下划线和字母开头
2、go的变量申明
package main import "fmt" func main() { //申明变量 var v1 int var v2 int var v3,v4 int var ( v5 int v6 int ) //默认都是零值 fmt.Println(v1,v2,v3,v4,v5,v6) }
3、go变量的初始化
package main import ( "fmt" "reflect" ) func main() { //初始化变量 //方式1 var v1 int = 10 //方式2 var v2 = 20 //方式3 v3 := 30 fmt.Println(v1,v2,v3) fmt.Println("v3的类型为",reflect.TypeOf(v3)) //利用反射查看v3的类型 }
package main import "fmt" func main() { //直接赋值 var v1 int v1 = 10 //申明并赋值,这种方式只能在函数里用 v2 := 20 v3 := 30 //多重赋值 var v4,v5,v6 int v4,v5,v6 = 40,50,50 fmt.Println(v1,v2,v3,v4,v5,v6) }
4、go变量的赋值
package main import "fmt" func main() { //直接赋值 var v1 int v1 = 10 //申明并赋值 v2 := 20 v3 := 30 //多重赋值 var v4,v5,v6 int v4,v5,v6 = 40,50,50 fmt.Println(v1,v2,v3,v4,v5,v6) }
5、匿名变量
package main import "fmt" //(int,string),函数的返回值是2个,一个是int一个是字符串 func test() (int,string) { return 444,"golang" } func main() { //i, s := test() //fmt.Println(i,s) //test函数返回两个,在golang中,如果变量没有被使用,则会飘红,这里如果我们只用第二个变量,则可以用一个下划线来做匿名变量 //主要用来占位,这样,这个变量就算没有被使用,代码也不会飘红 _, s := test() fmt.Println(s) }
6、常量和枚举
package main import "fmt" //定义常量,必须要给一个确定的值,可确定的值比如 数字,字符串,布尔值 const filename = "chy.text" //这样就会报错,因为a是一个变量,不是一个确定的值 //var a string //a = "abc" //const testname = a func a() { const ( v1 = "aaa" v2 = "bbb" filename = "chr.text" ) //就近原则 fmt.Println(filename) } func b() { //定义普通的枚举类型 const ( python = "aaa" java = "bbb" perl = "ccc" ) fmt.Println(python,java,perl) } func c() { //定义自增的枚举类型 //iota代表自增,从0开始,也叫做常量生成器 const ( test1 = iota test2 test3 ) fmt.Println(test1,test2,test3) } func d() { //iota还可以参与计算,下面的例子是位运算 const ( b = 1 << (10*iota) //1 * 2 ^ (10 * iota) kb mk gb //tb //pb ) fmt.Println(b,kb,mk,gb) } func main() { //a() //b() //c() d() }
原文:https://www.cnblogs.com/bainianminguo/p/10835837.html