Golang Go语言学习:一个字符串切片问题,求帮助
main.go 包内容
package main
import (
"fmt"
"os"
"io/ioutil"
"strings"
)
func main(){
counts := make(map[string]int)
for _,filename := range os.Args[1:]{
data,err := ioutil.ReadFile(filename)
if err != nil {
fmt.Fprintf(os.Stderr,"errMsg:%v\n",err)
}
for _,line := range strings.Split(string(data),"\n"){
counts[line]++
}
}
for line,n := range counts{
fmt.Printf("%d\t%s\n",n,line)
}
}
1.txt 内容如下:
123
456
123
hello
hello
运行 go run main.go 1.txt ,显示结果如下:
2 123
1 456
1 hello
1 hello
到这里就蒙了,1.txt 里面 hello 是两行,为什么存到 map 里面的时候是分成两个来存储的?而且如果在 1.txt 里面最后一个 hello 后面加一个回车,map 里面 hello 的数量就是 2 个
Golang Go语言学习:一个字符串切片问题,求帮助
更多关于Golang Go语言学习:一个字符串切片问题,求帮助的实战教程也可以访问 https://www.itying.com/category-94-b0.html
Windows 换行符是\r\n
更多关于Golang Go语言学习:一个字符串切片问题,求帮助的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
还真是,已解决,thx
在Go语言学习中遇到字符串切片问题是很常见的,我很乐意帮你解答。
首先,字符串切片([]string
)在Go中是一个包含多个字符串的数组。处理字符串切片时,你可能会遇到诸如遍历、添加、删除或修改元素等操作。
-
遍历字符串切片: 使用
for
循环或range
关键字可以方便地遍历字符串切片。例如:slice := []string{"a", "b", "c"} for _, str := range slice { fmt.Println(str) }
-
添加元素: 由于Go的数组长度是固定的,但切片是基于数组的动态数据结构,你可以使用内置的
append
函数向切片添加元素。slice = append(slice, "d")
-
删除元素: 删除切片中的元素通常涉及创建一个新的切片,因为切片不支持直接删除操作。你可以使用切片操作来实现这一点。
slice = append(slice[:index], slice[index+1:]...)
-
修改元素: 直接通过索引访问并修改切片中的元素。
slice[0] = "new_value"
如果你有更具体的问题或代码示例,请提供详细信息,这样我可以给出更精确的帮助。希望这些信息对你有所帮助!