我对Swift很新,并试图找出如何在for循环中计算。例如,为什么这样的工作没有?我希望它打印新的年龄+1 12次......
所以最终会读到: 我现在36岁 我现在37岁 等...
var myAge = 35
for _ in 1...20{
print("I am now \(myAge += 1) years old")
}
答案 0 :(得分:4)
Swift不支持字符串插值中的语法myAge += 1
。您可以改为myAge++
。
var myAge = 35
for _ in 1...20 {
print("I am now \(myAge++) years old")
}
答案 1 :(得分:1)
字符串插值尝试描述值,而不是计算表达式。从技术上讲,它会在符合.description
的任何内容上插入调用String
- CustomStringConvertible
- 的结果。见How can I change the textual representation displayed for a type in Swift?
那么,将它视为一个值而不是一个表达式,您期望myAge += 1
是什么类型的?如果你明确地添加它,那么:
var myAge = 35
for _ in 1...20 {
let x = (myAge += 1)
print("I am now \(x) years old")
}
您将看到编译器警告您:
“常量x推断为具有类型'()',这可能是意外的。”
答案 2 :(得分:0)
下面的代码有效,显然print()构造函数不支持+ =,但您可以更新该值,然后打印结果。
var myAge = 35
for _ in 1...20{
myAge += 1
print("I am now \(myAge) years old")
}