非常教程

Go参考手册

go

go/constant(常量)

  • import "go/constant"
  • 概述
  • 索引

概述

包常量实现了表示无类型的 Go 常量及其相应操作的值。

由于错误而导致值未知时,可能会使用特殊的未知值。除非另有规定,对未知值的操作会产生未知值。

索引

  • func BitLen(x Value) int
  • func BoolVal(x Value) bool
  • func Bytes(x Value) []byte
  • func Compare(x_ Value, op token.Token, y_ Value) bool
  • func Float32Val(x Value) (float32, bool)
  • func Float64Val(x Value) (float64, bool)
  • func Int64Val(x Value) (int64, bool)
  • func Sign(x Value) int
  • func StringVal(x Value) string
  • func Uint64Val(x Value) (uint64, bool)
  • type Kind
  • type Value
  • func BinaryOp(x_ Value, op token.Token, y_ Value) Value
  • func Denom(x Value) Value
  • func Imag(x Value) Value
  • func MakeBool(b bool) Value
  • func MakeFloat64(x float64) Value
  • func MakeFromBytes(bytes []byte) Value
  • func MakeFromLiteral(lit string, tok token.Token, zero uint) Value
  • func MakeImag(x Value) Value
  • func MakeInt64(x int64) Value
  • func MakeString(s string) Value
  • func MakeUint64(x uint64) Value
  • func MakeUnknown() Value
  • func Num(x Value) Value
  • func Real(x Value) Value
  • func Shift(x Value, op token.Token, s uint) Value
  • func ToComplex(x Value) Value
  • func ToFloat(x Value) Value
  • func ToInt(x Value) Value
  • func UnaryOp(op token.Token, y Value, prec uint) Value

包文件

value.go

func BitLen(显示源代码)

func BitLen(x Value) int

BitLen 返回以二进制表示形式表示绝对值x所需的位数;x 必须是一个 Int 或一个 Unknown。如果x未知,则结果为0。

func BoolVal(显示源代码)

func BoolVal(x Value) bool

BoolVal 返回 x 的 Go 布尔值,它必须是 Bool 或 Unknown。如果x是未知的,结果是错误的。

func Bytes(显示源代码)

func Bytes(x Value) []byte

Bytes 以 little-endian 二进制表示形式返回 x 的绝对值的字节;x 必须是一个 Int。

func Compare(显示源代码)

func Compare(x_ Value, op token.Token, y_ Value) bool

Compare 返回比较结果 x op y。必须为操作数定义比较。如果其中一个操作数为“Unknown”,则结果为 false。

func Float32Val(显示源代码)

func Float32Val(x Value) (float32, bool)

Float32Val 就像 Float64Val,但是用于 float32 而不是 float64。

func Float64Val(显示源代码)

func Float64Val(x Value) (float64, bool)

Float64Val 返回x的最接近的 Go float64 值以及结果是否准确; x必须是数字或未知的,但不是复杂的。对于太小(太接近于0)的值来表示为 float64,Float64Val 将静默下溢到0.结果符号始终与x的符号匹配,即使为0.如果x为“Unknown”,则结果为 (0,false)。

func Int64Val(显示源代码)

func Int64Val(x Value) (int64, bool)

Int64Val 返回 x 的 Go int64 值以及结果是否准确;x 必须是一个 Int 或一个 Unknown。如果结果不准确,则其值不确定。如果 x 是未知的,结果是 (0,false)。

func Sign(显示源代码)

func Sign(x Value) int

取决于 x <0,x == 0 还是 x> 0,符号返回 -1,0 或 1;x 必须是数字或未知。对于复数值 x,如果 x == 0,则符号为 0,否则为!= 0。如果x为未知,则结果为1。

func StringVal(显示源代码)

func StringVal(x Value) string

StringVal 返回 x 的 Go 字符串值,它必须是 String 或 Unknown。如果x是未知的,结果是“”。

func Uint64Val(显示源代码)

func Uint64Val(x Value) (uint64, bool)

Uint64Val 返回 x 的 Go uint64 值和结果是否确切;x 必须是一个 Int 或一个 Unknown。如果结果不准确,则其值不确定。如果 x 是未知的,结果是 (0,false)。

type Kind(显示源代码)

Kind 指定由值表示的值的种类。

type Kind int
const (
        // 未知的值
        Unknown Kind = iota

        // 非数字值
        Bool
        String

        // 数值
        Int
        Float
        Complex
)

type Value(显示源代码)

Value 代表 Go 常数的值。

type Value interface {
        // Kind返回kind的值。
        Kind() Kind

        // String返回值的简短引用(人类可读)形式。
        // 对于数值,结果可能是近似值;
        // 对于String值,结果可能是缩短的字符串。
        // 将ExactString用于表示值的字符串。
        String() string

        // ExactString返回值的精确引用(人类可读)形式。
        // 如果Value是Kind String,请使用StringVal获取不带引号的字符串。
        ExactString() string
        // 包含过滤或未导出的方法
}

func BinaryOp(显示源代码)

func BinaryOp(x_ Value, op token.Token, y_ Value) Value

BinaryOp 返回二进制表达式 x op y 的 结果。该操作必须为操作数定义。如果其中一个操作数为“Unknown”,则结果为“Unknown”。BinaryOp 不处理比较或转换;使用 Compare 或 Shift 来代替。

要强制 Int 操作数的整数除法,请使用 op == token.QUO_ASSIGN 而不是 token.QUO;在这种情况下结果保证为 Int。除以零引起运行时恐慌。

func Denom(显示源代码)

func Denom(x Value) Value

Denom 返回x的分母;x 必须是 Int,Float 或 Unknown。如果 x 是未知的,或者如果它太大或太小而不能表示为分数,则结果为未知。否则结果是一个 Int> = 1。

func Imag(显示源代码)

func Imag(x Value) Value

Imag 返回 x 的虚部,它必须是数字或未知值。如果 x 未知,则结果为未知。

func MakeBool(显示源代码)

func MakeBool(b bool) Value

MakeBool 返回 b 的 Bool 值。

func MakeFloat64(显示源代码)

func MakeFloat64(x float64) Value

MakeFloat64 返回 x 的 Float 值。如果 x 不是有限的,则结果是未知。

func MakeFromBytes(显示源代码)

func MakeFromBytes(bytes []byte) Value

MakeFromBytes 在给定其小端编码表示的字节的情况下返回 Int 值。一个空的字节切片参数代表 0。

func MakeFromLiteral(显示源代码)

func MakeFromLiteral(lit string, tok token.Token, zero uint) Value

MakeFromLiteral 为 Go 文字字符串返回相应的整数,浮点数,虚数,字符或字符串值。tok 值必须是 token.INT,token.FLOAT,token.IMAG,token.CHAR 或 token.STRING 中的一个。最后的注释必须是零。如果文字字符串语法无效,则结果为未知。

func MakeImag(显示源代码)

func MakeImag(x Value) Value

MakeImag 返回 Complex 值 x*i;x 必须是 Int,Float 或 Unknown。如果 x 未知,则结果为未知。

func MakeInt64(显示源代码)

func MakeInt64(x int64) Value

MakeInt64 返回 x 的 Int 值。

func MakeString(显示源代码)

func MakeString(s string) Value

MakeString 返回 s 的字符串值。

func MakeUint64(显示源代码)

func MakeUint64(x uint64) Value

MakeUint64 返回 x 的 Int 值。

func MakeUnknown(显示源代码)

func MakeUnknown() Value

MakeUnknown 返回未知值。

func Num(显示源代码)

func Num(x Value) Value

Num 返回 x 的分子;x 必须是 Int,Float 或 Unknown。如果 x 是未知的,或者如果它太大或太小而不能表示为分数,则结果为未知。否则,结果是带有与 x 相同符号的 Int。

func Real(显示源代码)

func Real(x Value) Value

实数返回 x 的实数部分,它必须是数字或未知值。如果 x 未知,则结果为未知。

func Shift(显示源代码)

func Shift(x Value, op token.Token, s uint) Value

Shift 返回移位表达式 x op s 的结果与 op == token.SHL 或 token.SHR(<<或>>)。x 必须是一个 Int 或一个 Unknown。如果 x 是未知的,结果是 x。

func ToComplex(显示源代码)

func ToComplex(x Value) Value

ToComplex 将x转换为 Complex 值,如果 x 可表示为 Complex。否则它返回一个未知。

func ToFloat(显示源代码)

func ToFloat(x Value) Value

ToFloat 将 x 转换为 Float 值(如果 x 可表示为 Float)。否则它返回一个Unknown。

func ToInt(显示源代码)

func ToInt(x Value) Value

如果 x 可表示为 Int,ToInt 将 x 转换为 Int 值。否则它返回一个未知。

func UnaryOp(显示源代码)

func UnaryOp(op token.Token, y Value, prec uint) Value

UnaryOp 返回一元表达式 op y 的结果。该操作必须为操作数定义。如果 prec> 0,则它以位为单位指定^(xor) 结果大小。如果y未知,则结果为Unknown。

Go

Go 是一种编译型语言,它结合了解释型语言的游刃有余,动态类型语言的开发效率,以及静态类型的安全性。它也打算成为现代的,支持网络与多核计算的语言。要满足这些目标,需要解决一些语言上的问题:一个富有表达能力但轻量级的类型系统,并发与垃圾回收机制,严格的依赖规范等等。这些无法通过库或工具解决好,因此Go也就应运而生了。

主页 https://golang.org/
源码 https://go.googlesource.com/go
发布版本 1.9.2

Go目录

1.档案 | archive
2.缓冲区 | bufio
3.内置 | builtin
4.字节 | bytes
5.压缩 | compress
6.容器 | container
7.上下文 | context
8.加密 | crypto
9.数据库 | database
10.调试 | debug
11.编码 | encoding
12.错误 | errors
13. expvar
14.flag
15. fmt
16. go
17.散列 | hash
18.html
19.图像 | image
20.索引 | index
21.io
22.日志 | log
23.数学 | math
24. math/big
25.math/bits
26.math/cmplx
27.math/rand
28.拟态 | mime
29.net
30.net/http
31. net/mail
32. net/rpc
33.net/smtp
34. net/textproto
35. net/url
36.os
37.路径 | path
38.插件 | plugin
39.反射 | reflect
40.正则表达式 | regexp
41.运行时 | runtime
42.排序算法 | sort
43.转换 | strconv
44.字符串 | strings
45.同步 | sync
46.系统调用 | syscall
47.测试 | testing
48.文本 | text
49.时间戳 | time
50.unicode
51.不安全性 | unsafe
52.Go 语言数据类型
53.Go 语言基础语法
54.Go 语言结构
55.Go 语言 select 语句
56.Go 语言 switch 语句
57.Go 语言 if 语句嵌套
58.Go 语言 if…else 语句
59.Go 语言 if 语句
60.Go 语言运算符
61.Go 语言常量
62.Go 语言函数闭包
63.Go 语言函数作为实参
64.Go 语言函数引用传递值
65.Go 语言函数值传递值
66.Go 语言函数
67.Go 语言 goto 语句
68.Go 语言 continue 语句
69.Go 语言 break 语句
70.Go 语言循环嵌套
71.Go 语言 for 循环
72.Go 语言结构体
73.Go 语言指针作为函数参数
74.Go 语言指向指针的指针
75.Go 语言指针数组
76.Go 语言指针
77.Go 语言向函数传递数组
78.Go 语言多维数组
79.Go 语言变量作用域
80.Go 语言函数方法
81.Go 错误处理
82.Go 语言接口
83.Go 语言类型转换
84.Go 语言递归函数
85.Go 语言Map(集合)
86.Go 语言范围(Range)
87.Go 语言切片(Slice)
88.Go 并发
89.Go fmt.Sprintf 格式化字符串