区块链|区块链 go 变量声明与定义
go中变量声明,定义有好几种形式
//声明并初始化一个变量
var varName type
//定义一个 type 类型的变量 varName
var number int
//声明初始化多个变量
var varName1, varName2 type
//定义两个 type 类型的变量 varName1 和 varName2
var a, b, c,d int = 1, 2, 3, 4
//多个变量的声明(注意小括号的使用)
var(numintname stringisSelect bool //布尔类型)
//声明时不指名类型,通过初始化直接赋予
//自行判断变量类型,一旦判断不可改变
var str = "abc" //string 类型 var b = true//bool 类型
//简化写法,开发中经常用到
b := true
//相当于下面写法
var b bool = truestr := "abc"
//相当于下面写法
var str string = “abc”
常量 const 常量是一个简单值的标识符,在程序运行时,不会被修改的量。
常量中的数据类型只可以是布尔型、数字型(整数型、浮点型和复数)和字符串型。
常量的定义格式:
const identifier [type] = value
可以省略类型说明符 [type],因为编译器可以根据变量的值来推断其类型。
const LENGTH int = 10
//显示声明const WIDTH = 5
//隐示声明多个相同类型的声明可以简写为:
const c_name1, c_name2 = value1, value2
const a, b, c = 1, false, "str" //多重赋值
package mainimport "fmt"func main() {
const LENGTH int = 10 //显示声明
// LENGTH = 100//常量这么写会报错
const WIDTH = 5 //隐示声明
var area int
const a, b, c = 1, false, "str" //多重赋值area = LENGTH * WIDTH
fmt.Printf("面积为 : %d", area)
println()
println(a, b, c)
}
以上实例运行结果为
面积为 : 50
1 false str
【区块链|区块链 go 变量声明与定义】常量还可以用作枚举:
package mainimport "fmt"func main() {
const (
Unknown = 0
Female= 1
Male= 2
F
M
)
fmt.Println(Unknown, Female, Male, F, M)}
数字 0、1 和 2 分别代表未知性别、女性和男性。
F M 的值和Male一样 都是2
常量可以用len(), cap(), unsafe.Sizeof()常量计算表达式的值。常量表达式中,函数必须是内置函数,否则编译不过:
package mainimport "unsafe"
const (
a = "abc"
b = len(a)
c = unsafe.Sizeof(a)
)func main(){
println(a, b, c)
}
以上实例运行结果为:
abc 3 16
iota iota,特殊常量,可以认为是一个可以被编译器修改的常量。
在每一个const关键字出现时,被重置为0,然后再下一个const出现之前,每出现一次iota,其所代表的数字会自动增加1。
iota 可以被用作枚举值:
package mainimport "fmt"func main() {
const (
Unknown = iota
Female
Male
)
fmt.Println(Unknown, Female, Male)}
以上实例运行结果为:
0, 1, 2
//iota...相当于给下面的常量依次++
//无符号 只能存正数
推荐阅读
- Shell-Bash变量与运算符
- 画解算法(1.|画解算法:1. 两数之和)
- 标签、语法规范、内联框架、超链接、CSS的编写位置、CSS语法、开发工具、块和内联、常用选择器、后代元素选择器、伪类、伪元素。
- (二)ES6第一节变量(let|(二)ES6第一节变量(let,const)
- 「#1-颜龙武」区块链的价值是什么()
- leetcode|leetcode 92. 反转链表 II
- 概率论/统计学|随机变量 的 分布函数 与 概率密度函数 的区别
- BNC公链|BNC公链 | Eth2.0测试网Topaz已质押超100万枚ETH
- 【#2-戴栋】区块链可以提升哪些商业上的效率改进
- Spectrum|Spectrum 区块偶尔停止同步问题排查与解决笔记