github.com/andeya/ameda@v1.5.3/string.go (about) 1 package ameda 2 3 import ( 4 "strconv" 5 ) 6 7 // StringToInterface converts string to interface. 8 func StringToInterface(v string) interface{} { 9 return v 10 } 11 12 // StringToInterfacePtr converts string to *interface. 13 func StringToInterfacePtr(v string) *interface{} { 14 r := StringToInterface(v) 15 return &r 16 } 17 18 // StringToStringPtr converts string to *string. 19 func StringToStringPtr(v string) *string { 20 return &v 21 } 22 23 // StringToBool converts string to bool. 24 func StringToBool(v string, emptyAsFalse ...bool) (bool, error) { 25 r, err := strconv.ParseBool(v) 26 if err != nil { 27 if !isEmptyAsZero(emptyAsFalse) { 28 return false, err 29 } 30 } 31 return r, nil 32 } 33 34 // StringToBoolPtr converts string to *bool. 35 func StringToBoolPtr(v string, emptyAsFalse ...bool) (*bool, error) { 36 r, err := StringToBool(v, emptyAsFalse...) 37 return &r, err 38 } 39 40 // StringToFloat32 converts string to float32. 41 func StringToFloat32(v string, emptyAsZero ...bool) (float32, error) { 42 i, err := strconv.ParseFloat(v, 32) 43 if err != nil { 44 if !isEmptyAsZero(emptyAsZero) { 45 return 0, err 46 } 47 } 48 return float32(i), nil 49 } 50 51 // StringToFloat32Ptr converts string to *float32. 52 func StringToFloat32Ptr(v string, emptyAsZero ...bool) (*float32, error) { 53 r, err := StringToFloat32(v, emptyAsZero...) 54 return &r, err 55 } 56 57 // StringToFloat64 converts string to float64. 58 func StringToFloat64(v string, emptyAsZero ...bool) (float64, error) { 59 i, err := strconv.ParseFloat(v, 64) 60 if err != nil { 61 if !isEmptyAsZero(emptyAsZero) { 62 return 0, err 63 } 64 } 65 return i, nil 66 } 67 68 // StringToFloat64Ptr converts string to *float64. 69 func StringToFloat64Ptr(v string, emptyAsZero ...bool) (*float64, error) { 70 r, err := StringToFloat64(v, emptyAsZero...) 71 return &r, err 72 } 73 74 // StringToInt converts string to int. 75 func StringToInt(v string, emptyAsZero ...bool) (int, error) { 76 i, err := strconv.Atoi(v) 77 if err != nil { 78 if !isEmptyAsZero(emptyAsZero) { 79 return 0, err 80 } 81 } 82 return i, nil 83 } 84 85 // StringToIntPtr converts string to *int. 86 func StringToIntPtr(v string, emptyAsZero ...bool) (*int, error) { 87 r, err := StringToInt(v, emptyAsZero...) 88 return &r, err 89 } 90 91 // StringToInt8 converts string to int8. 92 func StringToInt8(v string, emptyAsZero ...bool) (int8, error) { 93 i, err := strconv.ParseInt(v, 10, 8) 94 if err != nil { 95 if !isEmptyAsZero(emptyAsZero) { 96 return 0, err 97 } 98 } 99 return int8(i), nil 100 } 101 102 // StringToInt8Ptr converts string to *int8. 103 func StringToInt8Ptr(v string, emptyAsZero ...bool) (*int8, error) { 104 r, err := StringToInt8(v, emptyAsZero...) 105 return &r, err 106 } 107 108 // StringToInt16 converts string to int16. 109 func StringToInt16(v string, emptyAsZero ...bool) (int16, error) { 110 i, err := strconv.ParseInt(v, 10, 16) 111 if err != nil { 112 if !isEmptyAsZero(emptyAsZero) { 113 return 0, err 114 } 115 } 116 return int16(i), nil 117 } 118 119 // StringToInt16Ptr converts string to *int16. 120 func StringToInt16Ptr(v string, emptyAsZero ...bool) (*int16, error) { 121 r, err := StringToInt16(v, emptyAsZero...) 122 return &r, err 123 } 124 125 // StringToInt32 converts string to int32. 126 func StringToInt32(v string, emptyAsZero ...bool) (int32, error) { 127 i, err := strconv.ParseInt(v, 10, 32) 128 if err != nil { 129 if !isEmptyAsZero(emptyAsZero) { 130 return 0, err 131 } 132 } 133 return int32(i), nil 134 } 135 136 // StringToInt32Ptr converts string to *int32. 137 func StringToInt32Ptr(v string, emptyAsZero ...bool) (*int32, error) { 138 r, err := StringToInt32(v, emptyAsZero...) 139 return &r, err 140 } 141 142 // StringToInt64 converts string to int64. 143 func StringToInt64(v string, emptyAsZero ...bool) (int64, error) { 144 i, err := strconv.ParseInt(v, 10, 64) 145 if err != nil { 146 if !isEmptyAsZero(emptyAsZero) { 147 return 0, err 148 } 149 } 150 return i, nil 151 } 152 153 // StringToInt64Ptr converts string to *int64. 154 func StringToInt64Ptr(v string, emptyAsZero ...bool) (*int64, error) { 155 r, err := StringToInt64(v, emptyAsZero...) 156 return &r, err 157 } 158 159 // StringToUint converts string to uint. 160 func StringToUint(v string, emptyAsZero ...bool) (uint, error) { 161 u, err := strconv.ParseUint(v, 10, strconv.IntSize) 162 if err != nil { 163 if !isEmptyAsZero(emptyAsZero) { 164 return 0, err 165 } 166 } 167 return uint(u), nil 168 } 169 170 // StringToUintPtr converts string to *uint. 171 func StringToUintPtr(v string, emptyAsZero ...bool) (*uint, error) { 172 r, err := StringToUint(v, emptyAsZero...) 173 return &r, err 174 } 175 176 // StringToUint8 converts string to uint8. 177 func StringToUint8(v string, emptyAsZero ...bool) (uint8, error) { 178 u, err := strconv.ParseUint(v, 10, 8) 179 if err != nil { 180 if !isEmptyAsZero(emptyAsZero) { 181 return 0, err 182 } 183 } 184 return uint8(u), nil 185 } 186 187 // StringToUint8Ptr converts string to *uint8. 188 func StringToUint8Ptr(v string, emptyAsZero ...bool) (*uint8, error) { 189 r, err := StringToUint8(v, emptyAsZero...) 190 return &r, err 191 } 192 193 // StringToUint16 converts string to uint16. 194 func StringToUint16(v string, emptyAsZero ...bool) (uint16, error) { 195 u, err := strconv.ParseUint(v, 10, 16) 196 if err != nil { 197 if !isEmptyAsZero(emptyAsZero) { 198 return 0, err 199 } 200 } 201 return uint16(u), nil 202 } 203 204 // StringToUint16Ptr converts string to *uint16. 205 func StringToUint16Ptr(v string, emptyAsZero ...bool) (*uint16, error) { 206 r, err := StringToUint16(v, emptyAsZero...) 207 return &r, err 208 } 209 210 // StringToUint32 converts string to uint32. 211 func StringToUint32(v string, emptyAsZero ...bool) (uint32, error) { 212 u, err := strconv.ParseUint(v, 10, 32) 213 if err != nil { 214 if !isEmptyAsZero(emptyAsZero) { 215 return 0, err 216 } 217 } 218 return uint32(u), nil 219 } 220 221 // StringToUint32Ptr converts string to *uint32. 222 func StringToUint32Ptr(v string, emptyAsZero ...bool) (*uint32, error) { 223 r, err := StringToUint32(v, emptyAsZero...) 224 return &r, err 225 } 226 227 // StringToUint64 converts string to uint64. 228 func StringToUint64(v string, emptyAsZero ...bool) (uint64, error) { 229 u, err := strconv.ParseUint(v, 10, 64) 230 if err != nil { 231 if !isEmptyAsZero(emptyAsZero) { 232 return 0, err 233 } 234 } 235 return u, nil 236 } 237 238 // StringToUint64Ptr converts string to *uint64. 239 func StringToUint64Ptr(v string, emptyAsZero ...bool) (*uint64, error) { 240 r, err := StringToUint64(v, emptyAsZero...) 241 return &r, err 242 }