Go 基础篇教程-变量

Vix1009 · · 1115 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

**一、Go内建变量类型** ``` bool string (u)int、(u)int8、(u)int16、(u)int32、(u)int64 uintptr 指针 byte rune 字符型,32 位,类比 char float32、float64 complex32、complex64 复数 ``` `类型转换 type(varName)` ``` func typeConversion () { var int a = 5 var b = "str" c := 3 var int d d = int(a / c) fmt.Println(d, b) } ``` **二、变量定义** 四种变量定义类型: ``` 第一种完全体:var name type = value 第二种简单体:var name = value //name根据value的类型自动识别类型 第三种最简体:name := value //只适用于函数体内,name根据value的类型自动识别类型 第四种包内聚合定义: var (name1 = value1 name2 = value2 ...) ``` `变量定义` ``` func definedVariable() { var a int = 5 var b = "str" c, d := 3, "string" var e int //整型默认初始值为0 var f string //字符串默认初始值为"" var g bool //bool默认初始值为false } //包内变量 var { name1 = 100 name2 = "abc" ... } ``` **三、变量和枚举类型** 两种常量定义:常量定义必须赋值 ``` 第一种完全体:const name type = value 第二种简单体:const name = value //name根据value的类型自动识别类型 ``` `定义常量` ``` func definedConst () { const fileName string = "readme.txt" const a, b = 12, 5 var c int c = int(math.Sqrt(a*a + b*b)) // 由于类型不定,所以这里不需要强转,如果定义为 const a, b int = 3, 4,则需要强转 fmt.Println(fileName, a, b, c) } ``` 枚举类型: 在Go语言中没有枚举类型,使用const来代替 ``` 自定义 const( name1 = value1 name2 = value2 ... ) iota 实现枚举自增 iota 表达式枚举:const ( name1=iota表达式 name2 ) ``` `定义枚举 ` ``` func dedinedEnmu () { const ( doctor_type = 0 nurse_type = 1 pharmacist_type = 2 ) fmt.Println(dcotor_type, nurse_type, pharmacist_type) // 0,1,2 const ( doctor_type = iota nurse_type pharmacist_type ) fmt.Println(dcotor_type, nurse_type, pharmacist_type) // 0,1,2 } ```

有疑问加站长微信联系(非本文作者))

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1115 次点击  ∙  1 赞  
加入收藏 微博
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传