在Swift

时间:2015-11-10 03:51:27

标签: swift loops for-loop count

我对Swift很新,并试图找出如何在for循环中计算。例如,为什么这样的工作没有?我希望它打印新的年龄+1 12次......

所以最终会读到: 我现在36岁 我现在37岁 等...

var myAge = 35

for _ in 1...20{
    print("I am now \(myAge += 1) years old")
}

3 个答案:

答案 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")
}