package quark_val import "testing" type tester struct { t *testing.T } func TestQuarkVal(t *testing.T) { sf := &tester{ t: t, } sf.newFix() sf.newMut() } // Создание нового мутабельного значения. func (sf *tester) newMut() { sf.t.Log("newMut") f := NewValMut(10) if f == nil { sf.t.Fatalf("newMut(): f==nil") } if v := f.Get(); v != 10 { sf.t.Fatalf("newMut(): v!=10") } Set(f, 32) if v := f.Get(); v != 32 { sf.t.Fatalf("newMut(): v(%v)!=32", v) } } // Создание нового фиксированного значения. func (sf *tester) newFix() { sf.t.Log("newFix") f := NewVal(10) if f == nil { sf.t.Fatalf("newFix(): f==nil") } if v := f.Get(); v != 10 { sf.t.Fatalf("newFix(): v!=10") } // Эту функцию вызвать нельзя -- тип другой // Set(f, 34) // if v := f.Get(); v != 10 { // sf.t.Fatalf("newFix(): v(%v)!=10", v) // } }