Golang中变量与常量怎么声明与使用
这篇文章主要介绍“Golang中变量与常量怎么声明与使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Golang中变量与常量怎么声明与使用”文章能帮助大家解决问题。
变量
变量的类型
变量的作用是用来存储数据,不同的变量保存的数据类型有可能是不一样的,一般常见的数据类型有:整型、浮点型、布尔型等。
go作为一个强类型语言,go中的每一个变量都有自己的类型,并且变量必须经过声明才能开始使用。
声明变量
go中的变量需要声明后才能使用,并且在同一个作用域中不支持重复声明。并且go语言的变量声明后必须使用。
变量声明的方式
标准声明
一般声明变量的格式为
// var 变量名 变量类型
var name string
var age int
var isShow bool
批量声明
当在声明变量的时候每次都需要写var关键字会显得比较繁琐,在go中还支持批量的声明变量
var (
name string
age int
isShow bool
num float32
)
变量的初始化
go中在声明变量的时候,会自动对变量对应的内存区域进行初始化操作,每个变量都会被初始化成其类型的默认值,比如:整型和浮点型变量的默认值为0.字符串变量的默认值为空字符串。布尔值变量的默认值为false。切片、函数、指针变量的默认为nil
但是在声明变量的时候为其指定初始值。变量初始化的标准格式为
// var 变量名 类型 = 值
var name string = "water"
var age int = 18
// 也可以一次定义多个变量
var name,age = "water", 20
变量类型推导
很多时候可以将变量的类型省略,编辑器可以根据等号右边的值来推导出变量的类型
var name = "water"
var age = 18
短变量声明
在函数内部,可以使用
:=
的声明方式初始化变量package main
import (
"fmt"
)
// 全局变量
var name = "water"
func main() {
a := 1
b := 2
fmt.Println(a,b)
}
匿名变量
在使用多重赋值时,如果想忽略一个值,可以使用匿名变量,匿名变量一般用一个下划线
_
表示,如下func getValue()(int,string){
return 18,"water"
}
func main() {
a,_ := getValue()
_,b := getValue()
fmt.Println("a=",a)
fmt.Println("b=",b)
}
匿名变量不占用命名空间,不会分配内存,所以匿名变量之间不存在重复声明,变量声明需要注意以下问题:
函数外的每个语句都必须以关键字开始比如:var、const、func
-
不能在函数外使用:=
-
多用于占位,表示忽略值_
常量
相比较于变量而言,常量是恒定不变的值,定义一些不会改变的值。常量的声明和变量声明非常相似,只是把var换成了const,常量在定义的时候必须赋值
const a = 123
const b = 456
常量一旦声明就不会再发生变化了。而且多个常量也可以一起声明
const (
a = 123
b = 456
)
如果同时声明多个常量时,省略了值则表示和上面一行的值相同。
const (
a = 1
b
c
)
这样a、b、c的值都是100
iota
iota
是go语言的常量计数器,只能在常量的表达式中使用。iota
在const关键字中第一次出现时为0,然后const中每新增一行常量声明就将加一计数一次。const (
a = iota // 0
b // 1
c // 2
d // 3
)
常见的使用iota的技巧
使用
_
跳过一些值const (
a = iota //0
b // 1
_
d // 3
)
在iota中间插入其他值
const (
a = iota // 0
b = 20
c // 2
d // 3
)
const e = iota // 0
多个iota定义一行
const (
a,b = iota + 1,iota + 2 // 1,2
c,d // 2,3
e,f // 3,4
)
相关内容
这些是最新的
热门排行
- THINKPHP5+GatewayWorker+Workerman 开发在线客服系统
- 在手机浏览器网页中点击链接跳转到微信界面的方法
- 尊云网站目录系统 ThinkPHP5网站分类目录程序 v2.2.221011
- CentOS 7安装shadowsock(一键安装脚本)
- AdminTemplate 基于LayUI 2.4.5实现的网站后台管理模板
- 用NW.js(node-webkit)开发多平台的桌面客户端
- PHP生成随机昵称/用户名
- THINKPHP5网站分类目录程序 尊云网站目录系统
- 织梦(DEDECMS)微信支付接口 微信插件
- 基于LayUI开发的 网站后台管理模板 BeginnerAdmin
- 响应式后台网站模板 - AMA.ADMIN
- layuiAdmin后台管理模板 Iframe版
- LayUI 1.0.9 升级 至 LayUI 2.1.4 方法
- 简洁清爽的会员中心模板
- jQuery幸运大转盘抽奖活动代码