mirror of
https://github.com/golang/go
synced 2024-11-25 22:57:58 -07:00
Add exvar.FuncInt for exporting indirect integer variables.
R=r APPROVED=r DELTA=21 (21 added, 0 deleted, 0 changed) OCL=29320 CL=29338
This commit is contained in:
parent
bef1a6439d
commit
5a12b1828d
@ -128,6 +128,14 @@ func (v *String) Set(value string) {
|
||||
v.s = value;
|
||||
}
|
||||
|
||||
// IntFunc wraps a func() int64 to create a value that satisfies the Var interface.
|
||||
// The function will be called each time the Var is evaluated.
|
||||
type IntFunc func() int64;
|
||||
|
||||
func (v IntFunc) String() string {
|
||||
return strconv.Itoa64(v())
|
||||
}
|
||||
|
||||
|
||||
// All published variables.
|
||||
var vars map[string] Var = make(map[string] Var);
|
||||
|
@ -78,3 +78,16 @@ func TestMapCounter(t *testing.T) {
|
||||
t.Error("red = %v, want 3", x)
|
||||
}
|
||||
}
|
||||
|
||||
func TestIntFunc(t *testing.T) {
|
||||
x := int(4);
|
||||
ix := IntFunc(func() int64 { return int64(x) });
|
||||
if s := ix.String(); s != "4" {
|
||||
t.Errorf("ix.String() = %v, want 4", s);
|
||||
}
|
||||
|
||||
x++;
|
||||
if s := ix.String(); s != "5" {
|
||||
t.Errorf("ix.String() = %v, want 5", s);
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user