🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# GO的数据类型定义 ```go //运行第一个程序 package main func main(){ print("Hello World") } ``` > 在GO语言中,一个程序只能有一个main包,对应只能有一个main方法,若无法满足这个条件,编译时将会报错。注释方式与PHP相同 1. import的使用 > 个人在使用import时,按照自己的编写习惯,依赖IDE的自动导包功能,实现包的导入。若导入包后没有使用,会编译出错。 ```go // 使用 . 来实现省略调用 import . "fmt" // 在包前通过别名替代包名 import stdio "fmt" // 包前使用 _ 作用为只调取包的init方法 import _ "xxx" // 使用 () 实现多包导入 import ( "fmt" "os" ) ``` 2. GO的可见性 > GO通过大小写来判别函数或者变量的权限,小写则为private,大写为public 3. 定义数据结构 > GO定义数据类型比较有意思。在函数体内使用var定义的变量必须被使用,否则编译报错,申明外部变量没有限制 1. 布尔类型 > 布尔类型只有true与false两个值,不可用0与1替代 2. 整形 > int类型根据使用的平台自动判别32位还是64位,可以手动定义指定的位数,例如 int8/uint16,定义了指定8位的int型/16位的无符号int型 3. 浮点型 > 浮点型有float32/float64,精确范围对应7/15位 4. 复数类型 > complex64/complex128 5. 其他值类型 > array struct string 6. 引用类型 > slice map chan 7. 接口类型 > inteface 8. 函数类型 > func ```go // 定义单个变量 var hello = "Hello World" //定义多个变量 var( num = 321 str = "haha" ) //定义常量,定义多个常量与变量的定义一样 const PI =3.14 ``` 4. 类型零值 > 零值不等于空值,变量被声明为某种类型后的默认值,通常情况下整型的默认值为0,bool为false,string为空字符串 5. 类型别名的定义 > 利用type进行类型别名的定义 ```go type( chinese string intMax int64 ) ``` 6. 变量声明与赋值 ```go 变量的声明格式:var <name> <type> 变量的赋值格式:<name> = <value> 声明的同时赋值:var <name> [type] = <value> 自身推断赋值:var <name> = <value> 简写赋值(不可全局变量赋值使用) <name> := <value> ``` 7. 类型转换 > 进行类型转换时,需要进行显式转换,并且需要保证两个不同的类型转换可以互相兼容 ```go var a = 'a' b := int(a) ``` 8. 常量的定义问题 > 常量值在编译时已经确定,所以右侧的数据需要使用常量或者内置函数,变量不能进行常量的赋值。定义常量组时,如果不进行数值的赋值,将会将其数值赋值为其上行的数值。常量初始化规则定义了每一行的常量定义个数一致时,默认上行数值下行初始化将进行,否则报错。 > 常量的iota是常量计数器,只在常量的表达式中使用。const中每新增一行常量声明将使iota计数一次 ```go // 赋值b,c均为hello字符串,赋值g,h为1,2 const( a = "hello" b c e,f = 1,2 g,h ) // 输出 c为2 f为5 const( a=1 b c = iota d e f = iota ) ```