【发布时间】:2018-04-18 20:55:56
【问题描述】:
我有一个包含1,2,3 之类的变量。这实际上是三个值,我想将它们包含在三个变量中,称为 v1、v2、v3(但 不是 在数组中)。
现在我正在通过以下方式执行此操作:
tmp := strings.Split(*w, ",")
sw, _ := strconv.Atoi(tmp[0])
rw, _ := strconv.Atoi(tmp[1])
pw, _ := strconv.Atoi(tmp[2])
这行得通,尽管它非常重复并且在 Go 中感觉不正确。
解决这个问题的更简洁的方法是什么?
【问题讨论】:
-
你做的很好,tbh。也就是说,如果您将其作为逗号分隔的列表放入,为什么不将其作为整数切片来操作呢?你可以这样循环转换。似乎是代码异味问题。另外,不要忽略来自
Aoti的错误返回(尽管您可能刚刚这样做是为了压缩您的示例代码)。 -
如果您想要局部变量
sw、rw和pw中的结果,那么这就是执行此操作的方法。如果你想要一个值,代码会更简洁,但你不会让你的局部变量集具有单独的值。 -
@Kaedys 是的,我忽略它只是为了保持简短。我正在写一个程序,接口是用这种方式指定的,超出范围,所以我必须处理这种格式。 sw, rw, pw 有特殊含义,分开放置更有意义。
标签: string variables go split substring