首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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

包文件

func BitLen(x Value) int

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

func BoolVal(x Value) bool

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

func Bytes(x Value) []byte

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

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(x Value) (int64, bool)

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

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)。

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

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

        // 非数字值
        Bool
        String

        // 数值
        Int
        Float
        Complex
)

Value 代表 Go 常数的值。

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

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

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

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

func Imag(x Value) Value

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

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(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(x Value) Value

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

func Real(x Value) Value

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

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(x Value) Value

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

func ToInt(x Value) Value

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

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

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

扫码关注腾讯云开发者

领取腾讯云代金券