【发布时间】:2017-10-17 19:48:13
【问题描述】:
您能否演示一种使用strings.split 的有效方法,以使返回的切片中不包含空标记?
具体来说,下面的代码返回["a" "" "b" "c"],我想让它返回["a" "b" "c"]:
fmt.Printf("%q\n", strings.Split("a,,b,c", ","))
【问题讨论】:
-
实现一个额外的功能,过滤掉你不想在那里的元素。实际上,这将是一个遍历字符串并检查它们的长度是否大于 0 的循环。由于缺乏泛型 - Go 不能有一个库函数可以完全为您执行此操作,因此一遍又一遍地重新实现它很有趣: -)
-
实际上,如果您需要对不同的切片类型进行大量操作,请查看
sort包的工作原理,不需要泛型。然而,对于字符串切片来说,编写一个通用的解决方案是大材小用。 -
@MiloChristiansen
func Sort(data Interface)--- 这就是它的工作原理,使用接口。因此,您必须一遍又一遍地为每种数据类型实现接口。 -
没错。
sort.Slice更接近这个问题,而 IIRC 它使用反射。 -
"IIRC 它使用反射" --- yikes :-D
标签: go