一: go语言中变量认知
go语言中变量的定义: (要想飞|先会走)||(翻身仗|抹遗憾 ) (1)go语言中变量认知升维(2)go语言中变量与强类型语言java类似,变量使用必须先声明后使用(3)go语言中变量标准的声明使用var关键字进行声明: var 变量名 变量类型;变量声明后必须使用,否则编译器会报错(4)go语言中变量声明时可以赋予初始值,如果不赋初始值,则默认为各变量的类型的默认值 var name string = "外卖小哥哥"(5)go语言中变量如果声明的同时赋予初始值,则可以省略变量的类型: var age = 30(6)go语言中变量什么并附初始值时可以使用简易默认,也是go语言中变量定义的常用方式: name := "boss";此时可以省略var关键字与数据类型(7)go语言可以对多个变量同时进行块声明:var (personName := "张三"personAge := 30sex := 1marry := false)
附录实例一:
package mainimport ("fmt""reflect"
)/*
go语言中变量的定义域:(1)go语言中变量认知升维(2)go语言中变量与强类型语言java类似,变量使用必须先声明后使用(3)go语言中变量标准的声明使用var关键字进行声明: var 变量名 变量类型;变量声明后必须使用,否则编译器会报错(4)go语言中变量声明时可以赋予初始值,如果不赋初始值,则默认为各变量的类型的默认值 var name string = "外卖小哥哥"(5)go语言中变量如果声明的同时赋予初始值,则可以省略变量的类型: var age = 30(6)go语言中变量什么并附初始值时可以使用简易默认,也是go语言中变量定义的常用方式: name := "boss";此时可以省略var关键字与数据类型(7)go语言可以对多个变量同时进行块声明:var (personName := "张三"personAge := 30sex := 1marry := false)
*/
func main() {a := 1b := "test"c := truefmt.Println("a变量类型: ", reflect.TypeOf(a))fmt.Println("b变量类型: ", reflect.TypeOf(b))fmt.Println("c变量类型: ", reflect.TypeOf(c))fmt.Println("=========================变量类型转换===============================")var d int16 = 97fmt.Println("变量a的值为: ", d, " ,变量的类型为: ", reflect.TypeOf(d))e := int32(d)fmt.Println("变量e的值为: ", e, " ,变量的类型为: ", reflect.TypeOf(e))fmt.Println("变量e的类型为字符串: ", string(e))fmt.Println("变量e的类型为字符串string : ", reflect.TypeOf(string(e)))desc := `再进行变量类型转换中需要特别注意转换后的数值是否发生变化`fmt.Println("注意事项: ", desc)var as int32 = 1234567891fmt.Println("变量as的值:", as, " ,变量类型: ", reflect.TypeOf(as))fmt.Println("转换as的类型为int16,变量as的值为: ", int16(as), " ,变量as类型: ", reflect.TypeOf(int16(as)))
}
实例运行效果:
GOROOT=D:\program_file_worker\go1.20 #gosetup
GOPATH=D:\program_file_worker\go1.20\bin;C:\Users\Administrator\go #gosetup
D:\program_file_worker\go1.20\bin\go.exe build -o C:\Users\Administrator\AppData\Local\Temp\GoLand\___go_build_VariableParameterDifinition_go.exe D:\program_file\go_workspace\org.jd.data\VariableParameterDifinition.go #gosetup
C:\Users\Administrator\AppData\Local\Temp\GoLand\___go_build_VariableParameterDifinition_go.exe
a变量类型: int
b变量类型: string
c变量类型: bool
=========================变量类型转换===============================
变量a的值为: 97 ,变量的类型为: int16
变量e的值为: 97 ,变量的类型为: int32
变量e的类型为字符串: a
变量e的类型为字符串string : string
注意事项: 再进行变量类型转换中
需要特别注意转换后的数值是否发生变化
变量as的值: 1234567891 ,变量类型: int32
转换as的类型为int16,变量as的值为: 723 ,变量as类型: int16
Process finished with the exit code 0
附录实例二:
package mainimport ("fmt""reflect"
)/*
变量交换值,使用变量简短什么方式来声明及赋值
*/
func main() {var name stringvar age intvar salary float32fmt.Println("变量a与b交换值:")a := 1b := 3a, b = b, afmt.Println("a:", a)fmt.Println("b:", b)println("name变量的默认初始值: ", name)println("age变量的初始值: ", age)println("salary的默认初始值: ", salary)/*go语言中变量的定义与java中定义的变量类型,都需要先声明后使用的(1)申明变量的语法:var 变量名 类型这样声明的变量,没有赋予初始值时,go会自动赋予该类型变量的默认初始值字符串默认初始值为空串(2)定义变量的同时赋予初始值: 标准的声明变量赋值var typeNum int = 0(3)同时声明多个变量时,没有赋予初始值,则变量类型必须保留var (a stringb intc stringd float)(4) 编译器推导类型格式var num = 20*/var college stringprintln("变量college= ", college)var typeNum int64println("变量type= ", typeNum)/*(1)go语言可以批量声明变量,声明变量的同时可以赋予初始值(2)go语言中变量声明后必须使用,但是常量声明后,不一定使用*/var (// 赋值的变量,可以省略类型,go编译器会自动进行类型推断;为简介,通常附初始值的变量可以省略变量类型tName string = "张三"tAge int = 28tSex bool)var numCount = 20println("numCount type is ", reflect.TypeOf(numCount))println("numCount = ", numCount)str := "这是第一个go语言程序"println("str=", str)strNum := `通过反引号可以定义字符串多行字符串定义`println("多行字符串定义: strNum = ", strNum)desc := `(1) 在go语言中有两种类型uint8:代表了 ASCII码的一个字符串rune类型: 代表了UTF-8格式的一个字符(如中文,日文或者其他复合字符,本质就是int32类型)`println(desc)english := 'a'chinese := '我'fmt.Println(english)fmt.Println(chinese)println("名称: ", tName, " ,年龄: ", tAge, " ,性别(true-男;false-女): ", tSex)}
运行效果:
OOT=D:\program_file_worker\go1.20 #gosetup
GOPATH=D:\program_file_worker\go1.20\bin;C:\Users\Administrator\go #gosetup
D:\program_file_worker\go1.20\bin\go.exe build -o C:\Users\Administrator\AppData\Local\Temp\GoLand\___go_build_ChangeParamaValue_go.exe D:\program_file\go_workspace\org.jd.data\ChangeParamaValue.go #gosetup
C:\Users\Administrator\AppData\Local\Temp\GoLand\___go_build_ChangeParamaValue_go.exe
变量a与b交换值:
a: 3
b: 1
name变量的默认初始值:
age变量的初始值: 0
salary的默认初始值: +0.000000e+000
变量college=
变量type= 0
numCount type is (0xed14a0,0xe9c920)
numCount = 20
str= 这是第一个go语言程序
多行字符串定义: strNum =
通过反引号可以定义字符串
多行字符串定义
(1) 在go语言中有两种类型
uint8:代表了 ASCII码的一个字符串
rune类型: 代表了UTF-8格式的一个字符(如中文,日文或者其他复合字符,本
质就是int32类型)
97
25105
名称: 张三 ,年龄: 28 ,性别(true-男;false-女): false
Process finished with the exit code 0
二: go语言常量认知
go语言中的常量的定义:(1)使用关键字const定义常量;(2)常量申明后可以不使用;不想变量那样,定义后必须使用,否则编译检查报错(3)常量的值在初始化后,不能修改(4)常量枚举: 针对一个有穷序列集合而言,一个集的枚举就是列出有穷序列集的所有成员
package mainimport ("fmt"
)/*go语言中的常量的定义:(1)使用关键字const定义常量;(2)常量申明后可以不使用;不想变量那样,定义后必须使用,否则编译检查报错(3)常量的值在初始化后,不能修改(4)常量枚举: 针对一个有穷序列集合而言,一个集的枚举就是列出有穷序列集的所有成员
*/func main() {fmt.Println("---------------循序渐进代码实操演示学习go编程语言--------------")fmt.Println("-------------------------go语言中定义常量------------------------------")const PersonName string = "GO语言实战系列"println("第一个常量: ", PersonName)const aa = 20const bb int16 = 50println("常量定义时,可以使用编译器进行类型推断,从而可以省略变量的类型")println("常量[a] = ", aa)println("常量[b]= ", bb)println("常量与变量都可以批量定义:")const (personName string = "小张"personAge int16 = 30personAddress = "北京市海淀区马连洼街道120路105号")println("使用批量定义的常量:")println("名称: ", personName, " ,年龄: ", personAge, " ,上班等死地址: ", personAddress)/*go语言现阶段还没有枚举,但是可以通过使用一种特殊的常量“iota”类模拟枚举iota在const关键字出现时被重置为0,const中的每新增一行常量申明,将使iota进行一次计数,可以简单第将iota理解为const语句块中的行索引*/const (a = iotabc = "你好呀,欢迎来到特工世界"de = iota)println("a:", a)println("b:", b)println("c:", c)println("d:", d)println("e:", e)}
实例运行效果:
GOROOT=D:\program_file_worker\go1.20 #gosetup
GOPATH=D:\program_file_worker\go1.20\bin;C:\Users\Administrator\go #gosetup
D:\program_file_worker\go1.20\bin\go.exe build -o C:\Users\Administrator\AppData\Local\Temp\GoLand\___go_build_ConstParameterDefinition_go.exe D:\program_file\go_workspace\org.jd.data\ConstParameterDefinition.go #gosetup
C:\Users\Administrator\AppData\Local\Temp\GoLand\___go_build_ConstParameterDefinition_go.exe
---------------循序渐进代码实操演示学习go编程语言--------------
-------------------------go语言中定义常量------------------------------
第一个常量: GO语言实战系列
常量定义时,可以使用编译器进行类型推断,从而可以省略变量的类型
常量[a] = 20
常量[b]= 50
常量与变量都可以批量定义:
使用批量定义的常量:
名称: 小张 ,年龄: 30 ,上班等死地址: 北京市海淀区马连洼街道120路105号
a: 0
b: 1
c: 你好呀,欢迎来到特工世界
d: 你好呀,欢迎来到特工世界
e: 4
Process finished with the exit code 0