Files
2018-09-26 02:36:21 +10:00

66 lines
1.0 KiB
Go

package common
import (
"math/rand"
)
var Letters = []rune("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789")
func RandomString(n int) string {
b := make([]rune, n)
for i := range b {
b[i] = Letters[rand.Intn(len(Letters))]
}
return string(b)
}
func NewBool(t bool) *bool {
return &t
}
func NewString(t string) *string {
if t == "" {
return nil
}
return &t
}
func NewInt(t int) *int {
return &t
}
func NewBoolFromInterface(val interface{}) bool {
switch val.(type) {
case bool: return val.(bool)
default: return false
}
}
func NewIntpFromInterface(val interface{}) *int {
switch val.(type) {
case int:
v := val.(int)
return &v
case float64:
v := int(val.(float64))
return &v
default: return nil
}
}
func NewStringpFromInterface(val interface{}) *string {
switch val.(type) {
case string:
v := val.(string)
return &v
default: return nil
}
}
func NewStringFromInterface(val interface{}) string {
switch val.(type) {
case string:
v := val.(string)
return v
default: return ""
}
}