什么是Go语言 go语言是一门静态强类型语言
什么是动态和静态:
可以理解为解释型和编译型 (python,动态解释型语言 一边编译一边执行)(golang,java,静态编译型语言 必须先将文件编译成可执行文件后才能运行)
什么是强类型语言:
什么是弱类型语言:
Go 语言特色
简洁、快速、安全
并行、有趣、开源
内存管理、数组安全、编译迅速
Go 语言用途
Go 语言被设计成一门应用于搭载 Web 服务器,存储集群或类似用途的巨型中央服务器的系统编程语言。对于高性能分布式系统领域而言,Go 语言无疑比大多数其它语言有着更高的开发效率。它提供了海量并行的支持,这对于游戏服务端的开发而言是再好不过了。
GO语言开发注意事项
Go是以包作为管理单位 每个Go源文件必须声明它所属的包。
Go应用程序的执行入口是main()方法。
main函数只能声明在main包中,不能声明在其他包中,并且一个main包中也必须有且仅有一个main函数。
Go语言严格区分大小写。
函数的左大括号必须和函数在同一行。
Go语言通过import导包,用什么包导什么包(导入了不用会编译出错)。
Go是以包作为管理单位 每个Golang源文件必须声明它所属的包。
Hello Golang 编写go语言的第一个文件
1 2 3 4 5 6 7 8 9 package main import (f "fmt" )func main () { f.Println("你好 golang" ) }
Go语言数据类型 整形数据类型(int) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 package mainimport ( f "fmt" "math" ) func main () { var num8 int8 = 127 var num16 int16 = 32767 var num32 int32 = math.MaxInt32 var num64 int64 = math.MaxInt64 var num int = math.MaxInt f.Printf("num8是 %d\n" ,num8) f.Printf("num16是 %d\n" ,num16) f.Printf("num32是 %d\n" ,num32) f.Printf("num64是 %d\n" ,num64) f.Printf("num是 %d\n" ,num) }
字符串数据类型(string) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 package mainimport ( f "fmt" ) func main () { mystring := "hello\tgolang.18" f.Printf(mystring) }
浮点数据类型(float) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 package mainimport ( f "fmt" "math" ) func main () { var num1 float32 = math.MaxFloat32 var num2 float64 = math.MaxFloat64 f.Printf("num1的类型是%T,num1是%g\n" ,num1,num1) f.Printf("num2的类型是%T,num2是%g\n" ,num2,num2) }
字符数据类型(byte) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 package mainimport ( f "fmt" ) func main () { var x byte = 65 var y uint8 = 65 f.Printf("x = %c\n" ,x) f.Printf("y = %c\n" ,y) }
布尔数据类型(bool) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 package mainimport ( f "fmt" ) func showBool () { a := true b := false f.Println("a=" ,a) f.Println("b=" ,b) f.Println("true && false = " ,a && b) f.Println("true || false = " ,a || b) } func main () { showBool() }
Go语言容器数据类型 哈希数据类型(hash) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 package mainimport f "fmt" func main () { s_dict := map [string ]int { "小明" :10 , "小红" :20 , } f.Println(s_dict["小红" ]) d_dict := map [int ]int {} for i := 0 ; i < 5 ; i++ { d_dict[i]=i } for key,value := range d_dict{ f.Println(key,value) } f.Println(d_dict) }
Go语言的变量(var)和常量(content) 什么是变量和常量
变量
变量是具体数据被内存存储之后内存地址的名称,说白了就是内存中的门牌号。
常量
表示不变的值,在程序运行时,不会被代码逻辑修改,比如数字上的圆周率,自然常数e等
变量
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 package mainimport ( f "fmt" "unsafe" ) func main () { var name name = 666 f.Println(&name) f.Println(unsafe.Sizeof(name)) b,a := "bbbbb" ,"aaaaa" b,a = a,b f.Println(a,b) }
常量 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 package mainimport ( f "fmt" ) func main () { const num int = 1 const ( a = iota b c ) f.Println(num) }
Go语言的作用域(scope) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 package mainimport (f "fmt" )var myvarable3 int = 6 func main () { var myvarable1,myvarable2 int = 69 ,145 f.Println(myvarable1,myvarable2,myvarable3) }
Go语言的运算操作符 数学运算符(+ - * / %(取余)) 1 2 3 4 5 6 7 8 a := 1 b := 2 c := false f.Println(a+b) f.Println(a-b) f.Println(a*b) f.Println(a/b) f.Println(a%b)
比较运算符 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 if (a==b){ f.Println("等于" ) } if (a!=b){ f.Println("不等于" ) } if (a>b){ f.Println("大于" ) } if (a<b){ f.Println("小于" ) } if (a>=b){ f.Println("大于等于" ) } if (a<b){ f.Println("小于等于" ) }
逻辑运算符 1 2 3 4 5 6 7 8 9 10 11 if a==1 && b==2 { f.Println("逻辑与" ) } if a==1 || b==1 { f.Println("逻辑或" ) } if !c{ f.Println("逻辑非" ) }
位运算 1 2 3 4 5 f.Println(a & b) f.Println(a | b) f.Println(a ^ b) f.Println(a << 1 ) f.Println(a >>1 )
捕获用户终端输入 1 2 3 4 var x int f.Println("请输入一个整数" ) f.Scanln(&x) f.Println(x)
再此奉上Golang基础集合的github地址供大家参考https://github.com/renaissancezyc/golang-Basics