本文整理匯總了Golang中golang.org/x/tools/go/types.Const.Type方法的典型用法代碼示例。如果您正苦於以下問題:Golang Const.Type方法的具體用法?Golang Const.Type怎麽用?Golang Const.Type使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類golang.org/x/tools/go/types.Const
的用法示例。
在下文中一共展示了Const.Type方法的3個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。
示例1: ConstValue
// ConstValue returns the SSA Value denoted by the source-level named
// constant obj.
//
func (prog *Program) ConstValue(obj *types.Const) *Const {
// TODO(adonovan): opt: share (don't reallocate)
// Consts for const objects and constant ast.Exprs.
// Universal constant? {true,false,nil}
if obj.Parent() == types.Universe {
return NewConst(obj.Val(), obj.Type())
}
// Package-level named constant?
if v := prog.packageLevelValue(obj); v != nil {
return v.(*Const)
}
return NewConst(obj.Val(), obj.Type())
}
示例2: checkConstValue
func checkConstValue(t *testing.T, prog *ssa.Program, obj *types.Const) {
c := prog.ConstValue(obj)
// fmt.Printf("ConstValue(%s) = %s\n", obj, c) // debugging
if c == nil {
t.Errorf("ConstValue(%s) == nil", obj)
return
}
if !types.Identical(c.Type(), obj.Type()) {
t.Errorf("ConstValue(%s).Type() == %s", obj, c.Type())
return
}
if obj.Name() != "nil" {
if !exact.Compare(c.Value, token.EQL, obj.Val()) {
t.Errorf("ConstValue(%s).Value (%s) != %s",
obj, c.Value, obj.Val())
return
}
}
}
示例3: newConst
func newConst(p *Package, o *types.Const) Const {
pkg := o.Pkg()
sym := p.syms.symtype(o.Type())
id := pkg.Name() + "_" + o.Name()
doc := p.getDoc("", o)
res := []*Var{newVar(p, o.Type(), "ret", o.Name(), doc)}
sig := newSignature(p, nil, nil, res)
fct := Func{
pkg: p,
sig: sig,
typ: nil,
name: o.Name(),
id: id + "_get",
doc: doc,
ret: o.Type(),
err: false,
}
return Const{
pkg: p,
sym: sym,
obj: o,
id: id,
doc: doc,
f: fct,
}
}