go/constant(常量)
Package 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
包文件
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。