Go 常见使用问题记录
Posted liuhmmjj
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Go 常见使用问题记录相关的知识,希望对你有一定的参考价值。
1.字符串分割,如果对""空字符串分割会怎么样
func main()
str := ""
if str == ""
fmt.Println("我的长度为0")
fmt.Println(len(str)) //0
sList := strings.Split(str, ",")
fmt.Println(sList)
if sList == nil
fmt.Println("分割空字符串后列表为空")
else
fmt.Println(fmt.Sprintf("分割空字符串后列表不为空,列表长度为:%d", len(sList)))
for index, value := range sList
fmt.Println("index:",index, "value:", value)
结果:
我的长度为0
0
[]
分割空字符串后列表不为空,列表长度为:1
index: 0 value:
从个结果来看分割""后列表的长度并不是为0,而是为1,因此在分割前可以先判断len(str)==0
str = strings.TrimSpace(str)//是去除字符串两端空格
2.字符串转int64常见问题:
package main
import (
"fmt"
"strconv"
"strings"
)
func main()
str := " "
i , err := strconv.ParseInt(str, 10, 64)
fmt.Println(i) // 0
fmt.Println(err) //strconv.ParseInt: parsing " ": invalid syntax
str2 := " 342 " // 两边有空格错误是一样的,strconv.ParseInt: parsing " 342 ": invalid syntax
//因此建议先去除两边空格
str2 = strings.TrimSpace(str2)
i2 , err := strconv.ParseInt(str2, 10, 64)
fmt.Println(i2) // 342
fmt.Println(err) //<nil>
str3 := "3.56"
i3 , err := strconv.ParseInt(str3, 10, 64)
fmt.Println(i3)//0
fmt.Println(err) //strconv.ParseInt: parsing "3.56": invalid syntax
str4 := ", 4623"
sList := strings.Split(str4, ",") // 会被分割为【"",""】即[ 4623]
fmt.Println(sList)
fmt.Println("--------------")//0
for _, s := range sList
//防止分割后的存在空格,例如", 4623"分割后存在空格
s = strings.TrimSpace(s)
i4 , err := strconv.ParseInt(s, 10, 64)
fmt.Println(i4)//0
fmt.Println(err) //strconv.ParseInt: parsing "3.56": invalid syntax
结果:
0
strconv.ParseInt: parsing " ": invalid syntax
342
<nil>
0
strconv.ParseInt: parsing "3.56": invalid syntax
[ 4623]
--------------
0
strconv.ParseInt: parsing "": invalid syntax
4623
<nil>
3.字符串与整数拼接
func main()
s1 := "hello"
s2 := 2134
sprintf := fmt.Sprintf("%s,%d", s1, s2)
fmt.Println(sprintf)
结果:
hello,2134
3. 切片list操作
func main()
l := []int1
l = nil
//l为nil时,可以使用len()进行判断,长度为0
fmt.Println(len(l))
//l为nil时,是可以正常for循环的
for _, value := range l
fmt.Println(value)
//l为nil时可以append操作
l = append(l, 12)
fmt.Println(l)
结果:
0
[12]
以上是关于Go 常见使用问题记录的主要内容,如果未能解决你的问题,请参考以下文章