Go语言常量

*早使用变量声明时,注意编码的问题,汉字的问题可能引发
 编译并不能经过。
 *若是你在定义变量 a 以前使用它,则会获得编译错误 undefined: a
 *若是你声明了一个局部变量却没有在相同的代码块中使用它,一样会获得编译错误
 *此外,单纯地给 a 赋值也是不够的,这个值必须被使用
 *全局变量是容许声明但不使用。 同一类型的多个变量能够声明在同一行
* 若是你想要交换两个变量的值,则能够简单地使用 a, b = b, a,两个变量的类型必须是相同。

*空白标识符 _ 也被用于抛弃值,如值 5 在:_, b = 5, 7 中被抛弃。

_ 其实是一个只写变量,你不能获得它的值。这样作是由于 Go 语言中你必须使用全部被声明的变量,
但有时你并不须要使用从一个函数获得的全部返回值。并行赋值也被用于当一个函数返回多个返回值时,
好比这里的 val 和错误 err 是经过调用 Func1 函数同时获得:val, err = Func1(var1)。

常量能够用len(), cap(), unsafe.Sizeof()函数计算表达式的值。常量表达式中,函数必须是内置函数,
不然编译不过

eg:

函数

package main import "unsafe" const ( a = "abc" b = len(a) c = unsafe.Sizeof(a) ) func main(){ println(a, b, c) }

注意:在不一样的引入的包中使用的println的规范不一样,有的不用大写p有的须要;


特殊常量iota

能够认为是一个被编译器修改的常量

iota 在 const关键字出现时将被重置为 0(const 内部的第一行以前),const 中每新增一行常量声明
将使 iota 计数一次(iota 可理解为 const 语句块中的行索引)。
eg:
package main import "fmt" func main() { const ( a = iota //0 b //1 c //2 d = "ha" //独立值,iota += 1 e //"ha" iota += 1 f = 100 //iota +=1 g //100 iota +=1 h = iota //7,恢复计数 i //8 ) fmt.Println(a,b,c,d,e,f,g,h,i) }

eg:
package main

import "fmt"

const (
    i = 1 << iota
    j = 3 << iota
    k
    l
)

func main() {
    fmt.Println("i=", i)
    fmt.Println("j=", j)
    fmt.Println("k=", k)
    fmt.Println("l=", l)
}

结果为:
i= 1 j= 6 k= 12 l= 24
相关文章
相关标签/搜索