1. interface{} -> 具体类型
var str interface{}
str.(string)
2. uuid切割 (切割5个位置)
uuids, err := uuid.NewV4()
runes := []rune(uuids.String())
salt := make([]rune,5)
for i := 0; i < 5; i++ {
salt[i] = runes[i]
}
3. 获取post发送的的json串,并获取对应的值
func GetOneField(r *http.Request) map[string]interface{} {
body, err := ioutil.ReadAll(r.Body)
CheckError(err)
jsonStr := bytes.NewBuffer(body).String()
var jsonMap map[string]interface{}
err = json.Unmarshal([]byte(jsonStr), &jsonMap)
CheckError(err)
return jsonMap
}
例如获取username字段, username := map["username"]
4. strings.Split(url,"/"), 切分长度与所切字符位置有关
若/在前面,则数组大小为3,否则为2 若url为user/login 则切割后数组长度为2
5. 获取url后面的参数(Get)
func GetParam(url,keywords string) string {
//url : /user/login?username=jiangshipan&password=19980502
questIndex := strings.Index(url, "?")
//打散成数组
rs := []rune(url)
paramStr := ""
if questIndex != -1 {
//判断url长度
paramStr = string(rs[questIndex+1 : len(url)])
//参数数组
paramterArray := strings.Split(paramStr, "&")
//生成参数字典
for i := 0; i < len(paramterArray); i++ {
str := paramterArray[i]
if len(str) > 0 {
temp := strings.Split(str, "=")
if temp[0] == keywords {
return temp[1]
}
}
}
}
//找不到
return ""
}