标签:png constant 主函数 fun 报错 map 内建函数 lex switch
//每个go源码的开头都是package,表示所属的包 //main表示可编译成二进制文件 package main //导入格式化包,不用时会报错 //不能使用单引号 import "fmt" //main主函数入口,不能带参数,不能定义返回值 //func声明函数放入关键字 //其那边大阔号不能单起一行 func main(){ fmt.Println("wocao go!") }
// go单行注释,与java和C++一样
/* 多行注释 */
关键字:
break default func interface select case defer go map struct chan else goto package switch const fallthrough if range type continue for import return var
还有30多个预定义的名字,用于内建的常量、类型和函数
内建常量:
true false iota nil
内建类型:
int int8 int16 int32 int64
uint uint8 uint16 uint32 uint64 uintptr
float32 float64 complex128 complex64
bool byte rune string error
内建函数:
make len cap new append copy close delete
complex real imag
panic recover
变量的声明:
package main import "fmt" func main(){ var a int var b int //一次性声明多个变量 var( c int d int ) //变量都会有一个初始0值 fmt.Print(a,b,c,d) } //运行结果 //0 0 0 0 //变量都会初始值为0
变量的初始化:
package main import ( "fmt" "reflect" ) func main() { //声明并初始化 var a int=10 var b int=10 // := 是声明并初始化 c :=30 //利用反射查看c的类型 fmt.Print("c的类型是:",reflect.TypeOf(c)) fmt.Print(a,b,c) }
//结果
//c的类型是:int 10 10 30
变量赋值:
package main import "fmt" func main() { //直接赋值 var a int a = 10 b := 20 //多重赋值 var c, d, e int c, d, e = 10, 20, 30 fmt.Print(a, b,c,d,e) }
//注意:声明的变量不调用会报错
匿名变量
_代表特殊的变量名,作用是占位
package main import "fmt" //int,string为返回值类型 func test()(int,string){ return 666,"我有大懒觉" }
//调用并把返回值赋予——和s func main(){ _,s:=test() fmt.Print(s) }
声明常量
iota常量生成器
枚举类型
声明常量
package main import "fmt" //const声明常量 const filename="abc.txt" func main(){ fmt.Print(filename) }
声明多个常量:
package main import "fmt" const filename = "cc.txt" func constant(){ //声明多个常量 const( filename="dd.txt" a=1 b=2 c,d=3,4 ) //就近原则 fmt.Print(a,b,c,d,filename) } func main() { constant() }
定义枚举类:
package main func enum(){ const( python=1 java=2 linux=3 ) print(python,java,linux) } func main(){ enum() }
iota生成器
package main func enum(){ const( python=iota java linux ) print(python,java,linux) } func main(){ enum() } //结果 //012
iota参与运算:
package main func enum() { const( //1<<0 //1*2^0 //位运算 b=1<<(10*iota) kb mb gb tb pb ) print(b,kb,mb,gb,tb,pb) } func main(){ enum() }
整型:
package main import ( "reflect" "fmt" ) func main(){ var a int a=10 b :=20 print(a,b) //默认推断类型是int fmt.Println(reflect.TypeOf(b)) }
浮点型:
package main import ( "fmt" "reflect" ) func main(){ var f1 float32 f1=12 f2 :=12.0 fmt.Println(f1) //默认推断64 fmt.Println(reflect.TypeOf(f2)) }
布尔值:
package main import ( "fmt" "reflect" ) func main(){ var v1 bool v1=true v2 :=(1==2) fmt.Println(v1,v2) fmt.Println(reflect.TypeOf(v2)) }
byets类型:
package main import "fmt" func main(){ var ch byte ch=‘a‘ fmt.Println(ch) fmt.Printf("ch=%c",ch) }
字符串:
package main import "fmt" func main(){ var str string str="abc" fmt.Printf(str) fmt.Println() str2 :=`hello mike \n \r 测试 ` fmt.Println(str2)
输出
标签:png constant 主函数 fun 报错 map 内建函数 lex switch
原文地址:https://www.cnblogs.com/tjp40922/p/10801144.html