go数据类型&iota

int 系列: 有符号

uint 系列: 无符号

float 系列:只有float32 和 float64

var定义时,float必须指定是32还是64,int和uint可以不指定

int8 ===1

int32 === 4

int64 ===8

占用内存数

reflect.TypeOf(i): 查看i的类型

unsafe.Sizeof(i): 查看i内存占用大小

类型零值

数值(复数)类型-0, bool-False , string- 空字符串

type *** int32     var a int32

*** 和 a不是同一个类型

变量和常量

同一行: var a, b, c int = 1,2,3 或者 a, b:=1,2(函数体内,var声明的全局变量)

大写字母开头变量可在其他包里读取到,小写字母开头为私有变量

var a,b,c int =1,2,3  可以变成 var a,b,c =1,2,3 (省略类型) 还可以变成 a,b,c :=1,2,3(省略掉var)
不过要注意的是:var只能在函数体内做局部变量时省略,而数据类型都可以省略
 "_"相当于一个垃圾桶,把不要的值丢到垃圾桶里

const *** 【type】= *****       显式常量

const *** = *****          隐式常量

iota        只能在常量定义中使用

iota遇到const是会重置为0, 在const声明变量是,每增加一行,iota值会加1

如:const a = iota

  const b = iota

iota值为0

const (

  a = iota

  b = iota

此时iota值为1

跳值使用iota使用_来达到目的:

package main
import "fmt"
const (
a = iota
b = iota
_
c = iota
)
func main() {
fmt.Println("hello world")
fmt.Println(b)
fmt.Print(c)
}//a为0.b为1, c为3
当常量表达式为空时,会自动继承上一个存在非空的表达式。
const (
  a = iota * 2
  b
  c
)b, c会继承上一级的iota*2

猜你喜欢

转载自www.cnblogs.com/zjyss/p/11951649.html