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  }