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  }