首先,谢谢你的帮助
for _ in 0..<v {
let edge = readLine()!.split(separator: " ").map { Int(String($0))! }
let (a: Int, b: Int, w: Int) = (edge[0], edge[1], edge[2])
}
在我看来,这只是接收整数并将其放入元组的过程,但检测到循环引用错误。你能告诉我为什么吗?
let edge = readLine()!.split(separator: " ").map { Int(String($0))! }
let (a, b, w) = (edge[0], edge[1], edge[2])
如果我删除类型注解,它会工作得很好。
1条答案
按热度按时间nxagd54h1#
这个错误有点不清楚,但是语法
let (a: Int, b: Int, w: Int)
对于声明元组中变量的类型是无效的。你实际上声明了3个名为Int
的变量,没有类型。a
和b
只是你可以通过continue a
或break b
引用的标签,除了这也会有问题,因为那些标签在元组内部。您可以执行以下操作之一:
备选案文1:
这甚至不是一个元组-我们定义了3个独立变量-
a
、b
和w
,都是Int
类型备选案文2:
在本例中,我们定义了一个变量
x
,其类型为tuple,包含3个元素,分别标记为a
、b
和w
。选项2a:我们不妨这样做:定义一次类型
然后多次使用: