1. 常量声明:const b string = "abc" 2. iota,特殊常量 const ( a = iota b c ) 1. 代表连续的,无类型的整数常量, 2. 以const开始的常量声明语句为单位, 3. 从0开始,没赋给一个常量就递增一次 4. 一旦跨越以const开始的常量声明语句就归04. 运算符1. 算术运算符,a + b ,包括(+,-,*,/,%...
常量用于定义不可被修改的的值,需要在编译过程中进行计算,只能为基础的数据类型布尔、数值、字符串,使用const进行常量声明,常量在定义的时候必须赋值。 常用语法: 1. const 常量名 类型 = 值 定义常量并进行初始化 const pi float64 = 3.1415926 1. 2. const 常量名 = 值 定义常量,类型通过值类型进行推导 con...
s:="S1"// 分配存储"S1"的内存空间,s结构体里的str指针指向这块内存s="S2"// 分配存储"S2"的内存空间,s结构体里的str指针转为指向这块内存b:=[]byte{1}// 分配存储'1'数组的内存空间,b结构体的array指针指向这个数组。b=[]byte{2}// 将array的内容改为'2' 图解如下 3.png 因为string的指针指向...
[]byte(string)的实现(源码在src/runtime/string.go中) // The constant is known to the compiler. // There is no fundamental theory behind this number. const tmpStringBufSize = 32 type tmpBuf [tmpStringBufSize]byte func stringtoslicebyte(buf *tmpBuf, s string) []byte { var b []byte ...
const ( a = iota b c ) 1. 代表连续的,无类型的整数常量, 2. 以const开始的常量声明语句为单位, 3. 从0开始,没赋给一个常量就递增一次 4. 一旦跨越以const开始的常量声明语句就归0 4. 运算符 1. 算术运算符,a + b ,包括(+,-,*,/,%,++,--) ...
const ( a byte = 100 // int to byte b int= 1e20 // float64 to int, overflows ) 枚举 关键字 iota 定义常量组中从 0 开始按⾏计数的⾃增枚举值。 const ( Sunday = iota // 0 Monday // 1,通常省略后续⾏表达式。 Tuesday // 2 ...
程序实体声明和定义:chan, const, func, interface, map, struct, type, var 程序流程控制:go, select, break, case, continue, default, defer, else, fallthrough, for, goto, if, range, return 类型 18个基本类型:bool, string, rune, byte, int, uint, int8, uint8, int16, uint16, int32, ...
go 中string与[]byte的互换,相信每一位 gopher 都能立刻想到以下的转换方式,我们将之称为标准转换。 // string to []byte s1 := "hello" b := []byte(s1) // []byte to string s2 := string(b) 强转换 通过unsafe 和 reflect 包,可以实现另外一种转换方式,我们将之称为强转换(也常常被人称作黑...
break default func interface select case defer go map struct chan else goto package switch const fallthrough if range type continue for import return var 变量 Go 同其他语言不同的地方在于变量的类型在变量名的后面,不是 int a,而是 a int。至于为什么这么定义,Go 的官方博客有给出解释,有兴趣的可以...
type slice struct { array unsafe.Pointer len int cap int } 切片的结构体由3部分构成,Pointer 是指向一个数组的指针,len 代表当前切片的长度,cap 是当前切片的容量。cap 总是大于等于 len 的。如果想从 slice 中得到一块内存地址,可以这样做:s := make([]byte, 200) ptr := unsafe...