【发布时间】:2021-07-31 11:52:41
【问题描述】:
我试图实现一个小的迭代,它返回一些范围的平方。
这应该是这个 Python 脚本的等价物
for i in range(n):
print(i*i)
我在 Swift 中尝试过
第一次尝试
let numbers = [1..<10]
for i in numbers{
print(i*i)
}
和
第二次尝试
let numbers = [1..<10]
for i in numbers{
var j: Int = i
print(j*j)
}
但是编译器说
Cannot convert value of type 'Range<Int>' to specified type 'Int'
根据我的 python 经验,我了解到这是由于 Swift 中的不同类型。因此我的问题是
- 我该如何解决这个问题? (即实现我在 python 中所做的相同的事情)
- 我的第一次和第二次尝试有什么问题?
- 为什么 Swift 中有这么多类型的
<Int>?
提前致谢!
【问题讨论】:
-
"为什么 Swift 中有这么多类型的
<Int>?"嗯,这是从哪里来的?您在问题中只提到了Range<Int>,而 one 不是“很多”... -
对了,你为什么决定把
1..<10包含在[]中?删除它们会使您的两个代码都工作。 -
对不起,误导性的术语,从互联网上的浅层搜索中,我看到了 Range
、ClosedRange 等。这些是“许多” <Int>我的意思。 -
@Sweeper 谢谢!这样可行!我想在生成数组时,我们必须在它们周围有
[]。