1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
| package main
import ( "fmt" "unsafe" )
// iota 是一个可以被编译器修改的常量,常量计数器 /* * iota 在 const关键字出现时将被重置为 0(const 内部的第一行之前), * const 中每新增一行常量声明将使 iota 计数一次(iota 可理解为 * const 语句块中的行索引)。 */
// const 修饰的变量表示在程序运行的过程中不会被修改 func main(){ const( a = iota b = iota c d = iota ) fmt.Println(a , b , c , d) const( e = iota f g ) fmt.Println(e, f, g)
const( h = iota i = "hello" j k = iota ) fmt.Println(h , i, j ,k)
const( l = 1 << iota // 1 左移 0 位 m = 2 << iota // 2 左移 1 位 n // 结果为 8, 解释应为 2 左移 3 位 o // 结果为 16, 解释应为 2 左移 4 位
) fmt.Println(l, m, n, o)
const( p = "hello world" q = len(p) r = unsafe.Sizeof(p) /* Golang中的string内部实现由两部分组成,一部分是指向字符串起始地址的指针, 另一部分是字符串的长度,两部分各是8字节,所以一共16字节 */ ) fmt.Println(p, q, r) }
|