github.com/zlyuancn/zstr@v0.0.0-20230412074414-14d6b645962f/s.go (about) 1 /* 2 ------------------------------------------------- 3 Author : Zhang Fan 4 date: 2020/1/11 5 Description : 6 ------------------------------------------------- 7 */ 8 9 package zstr 10 11 import ( 12 "strconv" 13 ) 14 15 type String string 16 17 func (m String) String() string { 18 return string(m) 19 } 20 func (m String) Val() string { 21 return string(m) 22 } 23 func (m String) Bytes() []byte { 24 return StringToBytes((*string)(&m)) 25 } 26 27 func (m String) Bool() (bool, error) { 28 return ToBool(string(m)) 29 } 30 func (m String) GetBool(def ...bool) bool { 31 if a, err := m.Bool(); err == nil { 32 return a 33 } 34 return len(def) > 0 && def[0] 35 } 36 37 func (m String) Int() (int, error) { 38 return strconv.Atoi(string(m)) 39 } 40 func (m String) GetInt(def ...int) int { 41 if a, err := strconv.Atoi(string(m)); err == nil { 42 return a 43 } 44 if len(def) > 0 { 45 return def[0] 46 } 47 return 0 48 } 49 func (m String) Int8() (int8, error) { 50 n, err := strconv.ParseInt(string(m), 10, 8) 51 if err != nil { 52 return 0, err 53 } 54 return int8(n), nil 55 } 56 func (m String) GetInt8(def ...int8) int8 { 57 if a, err := strconv.ParseInt(string(m), 10, 8); err == nil { 58 return int8(a) 59 } 60 if len(def) > 0 { 61 return def[0] 62 } 63 return 0 64 } 65 func (m String) Int16() (int16, error) { 66 n, err := strconv.ParseInt(string(m), 10, 16) 67 if err != nil { 68 return 0, err 69 } 70 return int16(n), nil 71 } 72 func (m String) GetInt16(def ...int16) int16 { 73 if a, err := strconv.ParseInt(string(m), 10, 16); err == nil { 74 return int16(a) 75 } 76 if len(def) > 0 { 77 return def[0] 78 } 79 return 0 80 } 81 func (m String) Int32() (int32, error) { 82 n, err := strconv.ParseInt(string(m), 10, 32) 83 if err != nil { 84 return 0, err 85 } 86 return int32(n), nil 87 } 88 func (m String) GetInt32(def ...int32) int32 { 89 if a, err := strconv.ParseInt(string(m), 10, 32); err == nil { 90 return int32(a) 91 } 92 if len(def) > 0 { 93 return def[0] 94 } 95 return 0 96 } 97 func (m String) Int64() (int64, error) { 98 return strconv.ParseInt(string(m), 10, 64) 99 } 100 func (m String) GetInt64(def ...int64) int64 { 101 if a, err := strconv.ParseInt(string(m), 10, 64); err == nil { 102 return a 103 } 104 if len(def) > 0 { 105 return def[0] 106 } 107 return 0 108 } 109 110 func (m String) Uint() (uint, error) { 111 n, err := strconv.ParseUint(string(m), 10, 64) 112 if err != nil { 113 return 0, err 114 } 115 return uint(n), err 116 } 117 func (m String) GetUint(def ...uint) uint { 118 if a, err := strconv.ParseUint(string(m), 10, 64); err == nil { 119 return uint(a) 120 } 121 if len(def) > 0 { 122 return def[0] 123 } 124 return 0 125 } 126 func (m String) Uint8() (uint8, error) { 127 n, err := strconv.ParseUint(string(m), 10, 8) 128 if err != nil { 129 return 0, err 130 } 131 return uint8(n), nil 132 } 133 func (m String) GetUint8(def ...uint8) uint8 { 134 if a, err := strconv.ParseUint(string(m), 10, 8); err == nil { 135 return uint8(a) 136 } 137 if len(def) > 0 { 138 return def[0] 139 } 140 return 0 141 } 142 func (m String) Uint16() (uint16, error) { 143 n, err := strconv.ParseUint(string(m), 10, 16) 144 if err != nil { 145 return 0, err 146 } 147 return uint16(n), nil 148 } 149 func (m String) GetUint16(def ...uint16) uint16 { 150 if a, err := strconv.ParseUint(string(m), 10, 16); err == nil { 151 return uint16(a) 152 } 153 if len(def) > 0 { 154 return def[0] 155 } 156 return 0 157 } 158 func (m String) Uint32() (uint32, error) { 159 n, err := strconv.ParseUint(string(m), 10, 32) 160 if err != nil { 161 return 0, err 162 } 163 return uint32(n), nil 164 } 165 func (m String) GetUint32(def ...uint32) uint32 { 166 if a, err := strconv.ParseUint(string(m), 10, 32); err == nil { 167 return uint32(a) 168 } 169 if len(def) > 0 { 170 return def[0] 171 } 172 return 0 173 } 174 func (m String) Uint64() (uint64, error) { 175 return strconv.ParseUint(string(m), 10, 64) 176 } 177 func (m String) GetUint64(def ...uint64) uint64 { 178 if a, err := strconv.ParseUint(string(m), 10, 64); err == nil { 179 return a 180 } 181 if len(def) > 0 { 182 return def[0] 183 } 184 return 0 185 } 186 187 func (m String) Float32() (float32, error) { 188 f, err := strconv.ParseFloat(string(m), 32) 189 if err != nil { 190 return 0, err 191 } 192 return float32(f), nil 193 } 194 func (m String) GetFloat32(def ...float32) float32 { 195 if a, err := strconv.ParseFloat(string(m), 32); err == nil { 196 return float32(a) 197 } 198 if len(def) > 0 { 199 return def[0] 200 } 201 return 0 202 } 203 func (m String) Float64() (float64, error) { 204 return strconv.ParseFloat(string(m), 64) 205 } 206 func (m String) GetFloat64(def ...float64) float64 { 207 if a, err := strconv.ParseFloat(string(m), 64); err == nil { 208 return a 209 } 210 if len(def) > 0 { 211 return def[0] 212 } 213 return 0 214 } 215 216 // 扫描到任何, 输出变量不支持切片,数组,map,struct 217 func (m String) Scan(outPtr interface{}) error { 218 return Scan(string(m), outPtr) 219 }