Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift中for循环内的加减法_Swift_Loops_For Loop_Count - Fatal编程技术网

Swift中for循环内的加减法

Swift中for循环内的加减法,swift,loops,for-loop,count,Swift,Loops,For Loop,Count,我对斯威夫特很陌生,我正试图弄清楚如何在for循环中计数。例如,为什么像这样的东西不起作用?我想让它打印新时代+1 12次 因此,最终它将是: 我现在36岁了 我现在37岁了 等等 下面的代码可以工作,显然print()构造函数不支持+=,但是您可以更新值,然后打印结果 var myAge = 35 for _ in 1...20{ myAge += 1 print("I am now \(myAge) years old") } Swift不支持语法myAge+=1内部字

我对斯威夫特很陌生,我正试图弄清楚如何在for循环中计数。例如,为什么像这样的东西不起作用?我想让它打印新时代+1 12次

因此,最终它将是: 我现在36岁了 我现在37岁了 等等


下面的代码可以工作,显然print()构造函数不支持+=,但是您可以更新值,然后打印结果

var myAge = 35

for _ in 1...20{

    myAge += 1
    print("I am now \(myAge) years old")
}

Swift不支持语法
myAge+=1
内部字符串插值。您可以改为
myAge++

var myAge = 35

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

字符串插值尝试描述值,而不是计算表达式。从技术上讲,它对符合
CustomStringConvertible
的任何内容插入调用
.description
-a
字符串的结果。看

那么,考虑到它是一个值,而不是一个表达式,您希望
myAge+=1
是什么类型?如果明确添加,则:

var myAge = 35

for _ in 1...20 {
    let x = (myAge += 1)
    print("I am now \(x) years old")
}
您将看到编译器警告您:


“常数x推断为具有类型“()”,这可能是意外的。”

请注意,一旦发布Swift 3,这将不再有效。++和--运算符已被弃用。现在,您可以在for循环中自己执行
myAge+=1
,然后在print语句中打印出
myAge
var myAge = 35

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