// package def_let_int -- внутренне неизменяемое целое package def_let_int import ( "encoding/binary" "fmt" "gitp78su.ipnodns.ru/svi/kern/v4/lev0/defs/def_spec_base" "gitp78su.ipnodns.ru/svi/kern/v4/lev0/defs/def_spec_fn" ) // LInt -- внутренне неизменяемое целое. type LInt struct { val def_spec_base.Int } // LetInt -- возвращает новое внутреннее неизменяемое целое. func LetInt(val def_spec_base.Int) *LInt { sf := &LInt{ val: val, } return sf } // Get -- возвращает хранимое значение потокобезопасной переменной. func (sf *LInt) Get() def_spec_base.Int { return sf.val } // ToStr -- возвращает как строку. func (sf *LInt) ToStr() def_spec_base.ATxt { return def_spec_fn.Sprintf("%v", sf.val) } // ToByte -- возвращает как срез байт. func (sf *LInt) ToByte() []byte { buf := make([]byte, 8) binary.BigEndian.PutUint64(buf, uint64(sf.val)) return buf } // Int -- возвращает число func (sf *LInt) Int() int { return int(sf.val) } // String -- возвращает строку func (sf *LInt) String() string { return fmt.Sprintf("%v", sf.val) }