| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- // package def_num -- базовый тип числа
- package def_num
- import (
- "fmt"
- "gitp78su.ipnodns.ru/svi/kern/v4/lev0/defs/def_err"
- "gitp78su.ipnodns.ru/svi/kern/v4/lev0/defs/def_spec"
- "gitp78su.ipnodns.ru/svi/kern/v4/lev0/result"
- )
- // Num -- внутренне представление числа
- type Num struct {
- val def_spec.AInt
- }
- // NewNum -- возвращает целое число по требованию.
- func NewNum(val def_spec.AInt) *Num {
- sf := &Num{
- val: val,
- }
- return sf
- }
- // Get -- возвращает внутреннее число
- func (sf *Num) Get() def_spec.AInt {
- return sf.val
- }
- // Int -- возвращает число
- func (sf *Num) Int() int {
- return int(sf.val)
- }
- // Byte -- возвращает число как byte
- func (sf *Num) Byte() *def_spec.Result[byte] {
- if -128 <= sf.val && sf.val <= 127 {
- return result.NewOk(byte(sf.val))
- }
- err := def_err.Err("Num.Byte(). val(%v) not in -128..127", sf.val)
- return result.NewErr[byte](err)
- }
- // String -- возвращает строку
- func (sf *Num) String() string {
- return fmt.Sprintf("%v", sf.Get())
- }
|