-
博文分类专栏
- Jquery基础教程
-
- 文章:(15)篇
- 阅读:46569
- shell命令
-
- 文章:(42)篇
- 阅读:154249
- Git教程
-
- 文章:(36)篇
- 阅读:234886
- leetCode刷题
-
- 文章:(76)篇
- 阅读:131876
-
Go语言中变量和常量2017-12-31 16:18 阅读(3947) 评论(0)
一、变量
1、变量的命名
Go 语言变量名由字母、数字、下划线组成,其中首个字母不能为数字。比如以下为合理的变量名:
dq_test tmp01 _first
以下为不合理的变量名:
0_tmp //变量名不能以数字开头,必须以字母、下划线开头 tmp-word //变量名不能包含除了字母、数字、下划线以外的字符
2.变量的声明
方式一:指定变量类型,声明后若不赋值,使用默认值。格式如下:
var name type
比如:
var dq_name
方式一:指定变量值,不指定类型,程序自动判断变量类型。格式如下:
var name = val
比如:
var dq_age = 18
方式三:省略var和变量类型, 使用 := 声明变量,格式如下:
name := val
比如:
dq_weight := "58kg"
上诉案例如下:
package main //定义当前包名 import "fmt" //引入fmt包 func main() { //main函数为程序的入口,等c或C++类似 var dq_name string //声明变量方式一 var dq_age = 18 //声明变量方式二 dq_weight := "58kg" //声明变量方式三 fmt.Printf("dq_name=%s\n", dq_name) fmt.Printf("dq_age=%d\n", dq_age) fmt.Printf("dq_weight=%s\n", dq_weight) }
上面说的,都是单个变量的声明,如果想声明多个变量怎么搞呢?
使用上面的方式一,可以同时声明多个类型相同的变量格式如下:
var name1, name2, name3 type //声明变量
name1, name2, name3 = v1, v2, v3 //变量赋值
比如:
var name1,name2,name3 string name1,name2,name3 = "xiaozhang","xiaoli","xiaozhao"
使用上面的方式二,可以同时申明多个任意类型的变量,格式如下:
var name1, name2, name3 = v1, v2, v3
使用上面的方式三,也可以同时申明多个任意类型的变量,格式如下:
name1, name2, name3 := v1, v2, v3
案例如下:
package main //定义当前包名 import "fmt" //引入fmt包 func main() { //main函数为程序的入口,等c或C++类似 var a1,a2,a3 string a1,a2,a3 = "a1","a2","a3" var b1,b2,b3 = 2, "b2",3.51; c1,c2,c3 := 6, "c2", false fmt.Printf("a1=%s, a2=%s, a3=%s\n", a1,a2,a3) fmt.Printf("b1=%d, b2=%s, a3=%f\n", b1,b2,b3) fmt.Printf("c1=%d, c2=%s, c3=%t\n", c1,c2,c3) }
注意事项:
使用 := 声明变量虽然方便,但是它只能被用在函数体内,而不可以用于全局变量。
3、引用类型的变量和非引用类型的变量
针对非引用类型的变量,我们申明之后,直接可以用来存储一些值,如下:
var webSite string webSite = "www.findme.wang"
但是针对引用类型的变量,即指针类型的变量,我们申明只会,不能直接使用,否认在会报错,如下,定义了一个切片类型,没有初始化,直接使用:
var webSites []string webSites[0] = "www.findme.wang" fmt.Println(webSites)
正确的方式是,使用之前,为它分配内容空间,即所谓的初始化。如下:
var webSites []string webSites = make([]string, 3) webSites[0] = "www.findme.wang" fmt.Println(webSites)
二、常量
常量是在程序运行时,值不会改变的特殊变量。在go语言中,常量只能是布尔型、数字型(整数型、浮点型和复数)和字符串型。
常量的定义格式:
const name [type] = value
比如:
显式类型定义: const dqname string = "dq" 隐式类型定义: const age = 18
多个常量,为了方便,当类型一样时候,可以简写如下:
const name1, name2 = value1, value2
此外,常量还可以用作枚举,如下:
const ( work_ok = 1 work_fail = 2 )
备注
常量的值还可以使用函数表达式,但函数必须是内置函数,否则编译不过。