github.com/songzhibin97/gkit@v1.2.13/tools/pointer/types.go (about) 1 package pointer 2 3 // ToBytePointer 将byte类型的变量转换为对应的*byte指针类型 4 func ToBytePointer(v byte) *byte { 5 return &v 6 } 7 8 // ToBytePointerOrNilIfZero 将byte类型的变量转换为对应的*byte指针类型,如果变量的值为0的话则返回nil指针 9 func ToBytePointerOrNilIfZero(v byte) *byte { 10 if v == 0 { 11 return nil 12 } 13 return &v 14 } 15 16 // FromBytePointer 获取*byte类型的指针的实际值,如果指针为nil的话则返回0 17 func FromBytePointer(p *byte) byte { 18 return FromBytePointerOrDefaultIfNil(p, 0) 19 } 20 21 // FromBytePointerOrDefaultIfNil 获取*byte类型的指针的实际值,如果指针为nil的话则返回defaultValue 22 func FromBytePointerOrDefaultIfNil(v *byte, defaultValue byte) byte { 23 if v == nil { 24 return defaultValue 25 } 26 return *v 27 } 28 29 // ToComplex64Pointer 将complex64类型的变量转换为对应的*complex64指针类型 30 func ToComplex64Pointer(v complex64) *complex64 { 31 return &v 32 } 33 34 // ToComplex64PointerOrNilIfZero 将complex64类型的变量转换为对应的*complex64指针类型,如果变量的值为0的话则返回nil指针 35 func ToComplex64PointerOrNilIfZero(v complex64) *complex64 { 36 if v == 0 { 37 return nil 38 } 39 return &v 40 } 41 42 // FromComplex64Pointer 获取*complex64类型的指针的实际值,如果指针为nil的话则返回0 43 func FromComplex64Pointer(p *complex64) complex64 { 44 return FromComplex64PointerOrDefaultIfNil(p, 0) 45 } 46 47 // FromComplex64PointerOrDefaultIfNil 获取*complex64类型的指针的实际值,如果指针为nil的话则返回defaultValue 48 func FromComplex64PointerOrDefaultIfNil(v *complex64, defaultValue complex64) complex64 { 49 if v == nil { 50 return defaultValue 51 } 52 return *v 53 } 54 55 // ToComplex128Pointer 将complex128类型的变量转换为对应的*complex128指针类型 56 func ToComplex128Pointer(v complex128) *complex128 { 57 return &v 58 } 59 60 // ToComplex128PointerOrNilIfZero 将complex128类型的变量转换为对应的*complex128指针类型,如果变量的值为0的话则返回nil指针 61 func ToComplex128PointerOrNilIfZero(v complex128) *complex128 { 62 if v == 0 { 63 return nil 64 } 65 return &v 66 } 67 68 // FromComplex128Pointer 获取*complex128类型的指针的实际值,如果指针为nil的话则返回0 69 func FromComplex128Pointer(p *complex128) complex128 { 70 return FromComplex128PointerOrDefaultIfNil(p, 0) 71 } 72 73 // FromComplex128PointerOrDefaultIfNil 获取*complex128类型的指针的实际值,如果指针为nil的话则返回defaultValue 74 func FromComplex128PointerOrDefaultIfNil(v *complex128, defaultValue complex128) complex128 { 75 if v == nil { 76 return defaultValue 77 } 78 return *v 79 } 80 81 // ToFloat32Pointer 将float32类型的变量转换为对应的*float32指针类型 82 func ToFloat32Pointer(v float32) *float32 { 83 return &v 84 } 85 86 // ToFloat32PointerOrNilIfZero 将float32类型的变量转换为对应的*float32指针类型,如果变量的值为0的话则返回nil指针 87 func ToFloat32PointerOrNilIfZero(v float32) *float32 { 88 if v == 0 { 89 return nil 90 } 91 return &v 92 } 93 94 // FromFloat32Pointer 获取*float32类型的指针的实际值,如果指针为nil的话则返回0 95 func FromFloat32Pointer(p *float32) float32 { 96 return FromFloat32PointerOrDefaultIfNil(p, 0) 97 } 98 99 // FromFloat32PointerOrDefaultIfNil 获取*float32类型的指针的实际值,如果指针为nil的话则返回defaultValue 100 func FromFloat32PointerOrDefaultIfNil(v *float32, defaultValue float32) float32 { 101 if v == nil { 102 return defaultValue 103 } 104 return *v 105 } 106 107 // ToFloat64Pointer 将float64类型的变量转换为对应的*float64指针类型 108 func ToFloat64Pointer(v float64) *float64 { 109 return &v 110 } 111 112 // ToFloat64PointerOrNilIfZero 将float64类型的变量转换为对应的*float64指针类型,如果变量的值为0的话则返回nil指针 113 func ToFloat64PointerOrNilIfZero(v float64) *float64 { 114 if v == 0 { 115 return nil 116 } 117 return &v 118 } 119 120 // FromFloat64Pointer 获取*float64类型的指针的实际值,如果指针为nil的话则返回0 121 func FromFloat64Pointer(p *float64) float64 { 122 return FromFloat64PointerOrDefaultIfNil(p, 0) 123 } 124 125 // FromFloat64PointerOrDefaultIfNil 获取*float64类型的指针的实际值,如果指针为nil的话则返回defaultValue 126 func FromFloat64PointerOrDefaultIfNil(v *float64, defaultValue float64) float64 { 127 if v == nil { 128 return defaultValue 129 } 130 return *v 131 } 132 133 // ToIntPointer 将int类型的变量转换为对应的*int指针类型 134 func ToIntPointer(v int) *int { 135 return &v 136 } 137 138 // ToIntPointerOrNilIfZero 将int类型的变量转换为对应的*int指针类型,如果变量的值为0的话则返回nil指针 139 func ToIntPointerOrNilIfZero(v int) *int { 140 if v == 0 { 141 return nil 142 } 143 return &v 144 } 145 146 // FromIntPointer 获取*int类型的指针的实际值,如果指针为nil的话则返回0 147 func FromIntPointer(p *int) int { 148 return FromIntPointerOrDefaultIfNil(p, 0) 149 } 150 151 // FromIntPointerOrDefaultIfNil 获取*int类型的指针的实际值,如果指针为nil的话则返回defaultValue 152 func FromIntPointerOrDefaultIfNil(v *int, defaultValue int) int { 153 if v == nil { 154 return defaultValue 155 } 156 return *v 157 } 158 159 // ToInt8Pointer 将int8类型的变量转换为对应的*int8指针类型 160 func ToInt8Pointer(v int8) *int8 { 161 return &v 162 } 163 164 // ToInt8PointerOrNilIfZero 将int8类型的变量转换为对应的*int8指针类型,如果变量的值为0的话则返回nil指针 165 func ToInt8PointerOrNilIfZero(v int8) *int8 { 166 if v == 0 { 167 return nil 168 } 169 return &v 170 } 171 172 // FromInt8Pointer 获取*int8类型的指针的实际值,如果指针为nil的话则返回0 173 func FromInt8Pointer(p *int8) int8 { 174 return FromInt8PointerOrDefaultIfNil(p, 0) 175 } 176 177 // FromInt8PointerOrDefaultIfNil 获取*int8类型的指针的实际值,如果指针为nil的话则返回defaultValue 178 func FromInt8PointerOrDefaultIfNil(v *int8, defaultValue int8) int8 { 179 if v == nil { 180 return defaultValue 181 } 182 return *v 183 } 184 185 // ToInt16Pointer 将int16类型的变量转换为对应的*int16指针类型 186 func ToInt16Pointer(v int16) *int16 { 187 return &v 188 } 189 190 // ToInt16PointerOrNilIfZero 将int16类型的变量转换为对应的*int16指针类型,如果变量的值为0的话则返回nil指针 191 func ToInt16PointerOrNilIfZero(v int16) *int16 { 192 if v == 0 { 193 return nil 194 } 195 return &v 196 } 197 198 // FromInt16Pointer 获取*int16类型的指针的实际值,如果指针为nil的话则返回0 199 func FromInt16Pointer(p *int16) int16 { 200 return FromInt16PointerOrDefaultIfNil(p, 0) 201 } 202 203 // FromInt16PointerOrDefaultIfNil 获取*int16类型的指针的实际值,如果指针为nil的话则返回defaultValue 204 func FromInt16PointerOrDefaultIfNil(v *int16, defaultValue int16) int16 { 205 if v == nil { 206 return defaultValue 207 } 208 return *v 209 } 210 211 // ToInt32Pointer 将int32类型的变量转换为对应的*int32指针类型 212 func ToInt32Pointer(v int32) *int32 { 213 return &v 214 } 215 216 // ToInt32PointerOrNilIfZero 将int32类型的变量转换为对应的*int32指针类型,如果变量的值为0的话则返回nil指针 217 func ToInt32PointerOrNilIfZero(v int32) *int32 { 218 if v == 0 { 219 return nil 220 } 221 return &v 222 } 223 224 // FromInt32Pointer 获取*int32类型的指针的实际值,如果指针为nil的话则返回0 225 func FromInt32Pointer(p *int32) int32 { 226 return FromInt32PointerOrDefaultIfNil(p, 0) 227 } 228 229 // FromInt32PointerOrDefaultIfNil 获取*int32类型的指针的实际值,如果指针为nil的话则返回defaultValue 230 func FromInt32PointerOrDefaultIfNil(v *int32, defaultValue int32) int32 { 231 if v == nil { 232 return defaultValue 233 } 234 return *v 235 } 236 237 // ToInt64Pointer 将int64类型的变量转换为对应的*int64指针类型 238 func ToInt64Pointer(v int64) *int64 { 239 return &v 240 } 241 242 // ToInt64PointerOrNilIfZero 将int64类型的变量转换为对应的*int64指针类型,如果变量的值为0的话则返回nil指针 243 func ToInt64PointerOrNilIfZero(v int64) *int64 { 244 if v == 0 { 245 return nil 246 } 247 return &v 248 } 249 250 // FromInt64Pointer 获取*int64类型的指针的实际值,如果指针为nil的话则返回0 251 func FromInt64Pointer(p *int64) int64 { 252 return FromInt64PointerOrDefaultIfNil(p, 0) 253 } 254 255 // FromInt64PointerOrDefaultIfNil 获取*int64类型的指针的实际值,如果指针为nil的话则返回defaultValue 256 func FromInt64PointerOrDefaultIfNil(v *int64, defaultValue int64) int64 { 257 if v == nil { 258 return defaultValue 259 } 260 return *v 261 } 262 263 // ToRunePointer 将rune类型的变量转换为对应的*rune指针类型 264 func ToRunePointer(v rune) *rune { 265 return &v 266 } 267 268 // ToRunePointerOrNilIfZero 将rune类型的变量转换为对应的*rune指针类型,如果变量的值为0的话则返回nil指针 269 func ToRunePointerOrNilIfZero(v rune) *rune { 270 if v == 0 { 271 return nil 272 } 273 return &v 274 } 275 276 // FromRunePointer 获取*rune类型的指针的实际值,如果指针为nil的话则返回0 277 func FromRunePointer(p *rune) rune { 278 return FromRunePointerOrDefaultIfNil(p, 0) 279 } 280 281 // FromRunePointerOrDefaultIfNil 获取*rune类型的指针的实际值,如果指针为nil的话则返回defaultValue 282 func FromRunePointerOrDefaultIfNil(v *rune, defaultValue rune) rune { 283 if v == nil { 284 return defaultValue 285 } 286 return *v 287 } 288 289 // ToUintPointer 将uint类型的变量转换为对应的*uint指针类型 290 func ToUintPointer(v uint) *uint { 291 return &v 292 } 293 294 // ToUintPointerOrNilIfZero 将uint类型的变量转换为对应的*uint指针类型,如果变量的值为0的话则返回nil指针 295 func ToUintPointerOrNilIfZero(v uint) *uint { 296 if v == 0 { 297 return nil 298 } 299 return &v 300 } 301 302 // FromUintPointer 获取*uint类型的指针的实际值,如果指针为nil的话则返回0 303 func FromUintPointer(p *uint) uint { 304 return FromUintPointerOrDefaultIfNil(p, 0) 305 } 306 307 // FromUintPointerOrDefaultIfNil 获取*uint类型的指针的实际值,如果指针为nil的话则返回defaultValue 308 func FromUintPointerOrDefaultIfNil(v *uint, defaultValue uint) uint { 309 if v == nil { 310 return defaultValue 311 } 312 return *v 313 } 314 315 // ToUint8Pointer 将uint8类型的变量转换为对应的*uint8指针类型 316 func ToUint8Pointer(v uint8) *uint8 { 317 return &v 318 } 319 320 // ToUint8PointerOrNilIfZero 将uint8类型的变量转换为对应的*uint8指针类型,如果变量的值为0的话则返回nil指针 321 func ToUint8PointerOrNilIfZero(v uint8) *uint8 { 322 if v == 0 { 323 return nil 324 } 325 return &v 326 } 327 328 // FromUint8Pointer 获取*uint8类型的指针的实际值,如果指针为nil的话则返回0 329 func FromUint8Pointer(p *uint8) uint8 { 330 return FromUint8PointerOrDefaultIfNil(p, 0) 331 } 332 333 // FromUint8PointerOrDefaultIfNil 获取*uint8类型的指针的实际值,如果指针为nil的话则返回defaultValue 334 func FromUint8PointerOrDefaultIfNil(v *uint8, defaultValue uint8) uint8 { 335 if v == nil { 336 return defaultValue 337 } 338 return *v 339 } 340 341 // ToUint16Pointer 将uint16类型的变量转换为对应的*uint16指针类型 342 func ToUint16Pointer(v uint16) *uint16 { 343 return &v 344 } 345 346 // ToUint16PointerOrNilIfZero 将uint16类型的变量转换为对应的*uint16指针类型,如果变量的值为0的话则返回nil指针 347 func ToUint16PointerOrNilIfZero(v uint16) *uint16 { 348 if v == 0 { 349 return nil 350 } 351 return &v 352 } 353 354 // FromUint16Pointer 获取*uint16类型的指针的实际值,如果指针为nil的话则返回0 355 func FromUint16Pointer(p *uint16) uint16 { 356 return FromUint16PointerOrDefaultIfNil(p, 0) 357 } 358 359 // FromUint16PointerOrDefaultIfNil 获取*uint16类型的指针的实际值,如果指针为nil的话则返回defaultValue 360 func FromUint16PointerOrDefaultIfNil(v *uint16, defaultValue uint16) uint16 { 361 if v == nil { 362 return defaultValue 363 } 364 return *v 365 } 366 367 // ToUint32Pointer 将uint32类型的变量转换为对应的*uint32指针类型 368 func ToUint32Pointer(v uint32) *uint32 { 369 return &v 370 } 371 372 // ToUint32PointerOrNilIfZero 将uint32类型的变量转换为对应的*uint32指针类型,如果变量的值为0的话则返回nil指针 373 func ToUint32PointerOrNilIfZero(v uint32) *uint32 { 374 if v == 0 { 375 return nil 376 } 377 return &v 378 } 379 380 // FromUint32Pointer 获取*uint32类型的指针的实际值,如果指针为nil的话则返回0 381 func FromUint32Pointer(p *uint32) uint32 { 382 return FromUint32PointerOrDefaultIfNil(p, 0) 383 } 384 385 // FromUint32PointerOrDefaultIfNil 获取*uint32类型的指针的实际值,如果指针为nil的话则返回defaultValue 386 func FromUint32PointerOrDefaultIfNil(v *uint32, defaultValue uint32) uint32 { 387 if v == nil { 388 return defaultValue 389 } 390 return *v 391 } 392 393 // ToUint64Pointer 将uint64类型的变量转换为对应的*uint64指针类型 394 func ToUint64Pointer(v uint64) *uint64 { 395 return &v 396 } 397 398 // ToUint64PointerOrNilIfZero 将uint64类型的变量转换为对应的*uint64指针类型,如果变量的值为0的话则返回nil指针 399 func ToUint64PointerOrNilIfZero(v uint64) *uint64 { 400 if v == 0 { 401 return nil 402 } 403 return &v 404 } 405 406 // FromUint64Pointer 获取*uint64类型的指针的实际值,如果指针为nil的话则返回0 407 func FromUint64Pointer(p *uint64) uint64 { 408 return FromUint64PointerOrDefaultIfNil(p, 0) 409 } 410 411 // FromUint64PointerOrDefaultIfNil 获取*uint64类型的指针的实际值,如果指针为nil的话则返回defaultValue 412 func FromUint64PointerOrDefaultIfNil(v *uint64, defaultValue uint64) uint64 { 413 if v == nil { 414 return defaultValue 415 } 416 return *v 417 } 418 419 // ToUintptrPointer 将uintptr类型的变量转换为对应的*uintptr指针类型 420 func ToUintptrPointer(v uintptr) *uintptr { 421 return &v 422 } 423 424 // ToUintptrPointerOrNilIfZero 将uintptr类型的变量转换为对应的*uintptr指针类型,如果变量的值为0的话则返回nil指针 425 func ToUintptrPointerOrNilIfZero(v uintptr) *uintptr { 426 if v == 0 { 427 return nil 428 } 429 return &v 430 } 431 432 // FromUintptrPointer 获取*uintptr类型的指针的实际值,如果指针为nil的话则返回0 433 func FromUintptrPointer(p *uintptr) uintptr { 434 return FromUintptrPointerOrDefaultIfNil(p, 0) 435 } 436 437 // FromUintptrPointerOrDefaultIfNil 获取*uintptr类型的指针的实际值,如果指针为nil的话则返回defaultValue 438 func FromUintptrPointerOrDefaultIfNil(v *uintptr, defaultValue uintptr) uintptr { 439 if v == nil { 440 return defaultValue 441 } 442 return *v 443 }