golang语言学习第二课:变量类型及常量与枚举
Posted golangxiong
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了golang语言学习第二课:变量类型及常量与枚举相关的知识,希望对你有一定的参考价值。
go语言的变量类型:
- bool (true为0,false不等于0),
- string
- int 分好多种int,有点头晕,但用默认的int就足够了,根据机器判断,是32位的用int32,是64位的用int64.
- byte, 又是uint8的别名。
- rune(类似char,但是是utf-8编码的char),又是int32的别名。
- go语言没有float,只有float32, float 64(即使在32位的架构上还是64位)
- go语言原生支持复数类型,类似python, python也支持复数。go语言的复数类型有2种:complex64, complex128。一般程序其实很少用的上
golang类型转换是强制的,不能隐式转换。
go语言定义常量
定义常量: const 常量名, 数据类型(类型可省略,具体到用的时候golang可自动规定)
注意:const 后面的常量名在go语言可以不用大写,在C里强制要大写的,go的大写是有特殊含义的,并且大小写是敏感的。
function changliang ( ) {
const (
a, d = 3, 4 //常量可以规定类型,也可以不规定,不规定类似,类型是不确定的,此处a,d既可以做int任何一种类型, 又可以做float32, float64任何一种类型。
b string ="hello"
)
var c int
c = int ( math.Sqrt (a*a + b*b) ) //此处a,b类型为float64, 没规定类型直接放进来,math.Sqrt函数里是float64类型,就自动规定为float64类型。
fmt.Println(c, b)
}
枚举类型:
const (
python = iota //从0开始自增,并且iota支持参加运算,具体看代码区域块里的代码
_ //golang特殊字符, 赋值后忽略
golang // 值为2
csharp // 值为3
)
详见代码:
package main import ( "fmt" "math" ) func main() { consttest() constiota() changliang() } func changliang() { const( a, d = 3, 4 b string = "gooing" ) var c int fmt.Println(a, b) c = int(math.Sqrt(a*a + d*d)) //此处a,d为float64类型 fmt.Println(c) } func consttest() { const ( python = iota golang _ cpp clang ) fmt.Println(python,golang,cpp,clang ) } func constiota() { //Byte, KB,MB, GB,TB const( b =1 << (10 * iota) //iota能够参与运算 kb mb gb tb ) fmt.Println(b,kb,mb,gb,tb) }
以上是关于golang语言学习第二课:变量类型及常量与枚举的主要内容,如果未能解决你的问题,请参考以下文章