swift3 – 更改为Swift 3后的变异运算符错误,问题已研究,但无法解决

swift3 – 更改为Swift 3后的变异运算符错误,问题已研究,但无法解决,第1张

概述我得到一个“变异运算符的左侧不可变”..<“返回不可变值”错误 我阅读了关于变异值的其他帖子,但我无法弄清楚这些解决方案是如何应用的. 代码(和评论): //populate array of 3 random numbers using correct answer and 2 incorrect choices func insertIntoArray3(_ randomNumber: I 我得到一个“变异运算符的左侧不可变”..<“返回不可变值”错误 我阅读了关于变异值的其他帖子,但我无法弄清楚这些解决方案是如何应用的. 代码(和评论):

//populate array of 3 random numbers using correct answer and 2 incorrect choices func insertIntoArray3(_ randomNumber: Int) -> Int {for intJ in 0 ..< 2 += 1{    if arrayIndex != 3 {        checkIfExists(randomNumber)        if ifExists {            let randomNumber = 1 + random() % 10            insertIntoArray3(randomNumber)        } else {            array3[arrayIndex] = (randomNumber)            arrayIndex = arrayIndex + 1        }    }}return randomNumber}

修订代码:

//populate array of 3 random numbers using correct answer and 2 incorrect choicesfunc insertIntoArray3(_ randomNumber: Int) -> Int {    for _ in 0 ..< 2 + 1{        if arrayIndex != 3 {            checkIfExists(randomNumber)            if ifExists {                let randomNumber = 1 + arc4random() % 10                insertIntoArray3(Int(randomNumber))            } else {                array3[arrayIndex] = (randomNumber)                arrayIndex = arrayIndex + 1            }        }    }    return randomNumber}

谢谢!

我也在这里得到同样的错误….

//this function populates an array of the 40 image namesfunc populateallimagesArray() {for  intIA in 1 ..< 11 += 1 {    tempImagename = ("\(intIA)")    imageArray.append(tempImagename)    tempImagename = ("\(intIA)a")    imageArray.append(tempImagename)    tempImagename = ("\(intIA)b")    imageArray.append(tempImagename)    tempImagename = ("\(intIA)c")    imageArray.append(tempImagename)}//println("imageArray: \(imageArray) ")//println(imageArray.count)}

修订:

//this function populates an array of the 40 image namesfunc populateallimagesArray() {    for  intIA in 1 ..< 11 + 1 {        tempImagename = ("\(intIA)")        imageArray.append(tempImagename)        tempImagename = ("\(intIA)a")        imageArray.append(tempImagename)        tempImagename = ("\(intIA)b")        imageArray.append(tempImagename)        tempImagename = ("\(intIA)c")        imageArray.append(tempImagename)    }    //println("imageArray: \(imageArray) ")    //println(imageArray.count)}

谢谢!

解决方法@H_419_35@ 抛出错误的行是:

for intJ in 0 ..< 2 += 1{

=运算符是一个变异运算符,这意味着它告诉Swift采取它左侧的任何内容并进行更改,在这种情况下,通过添加右侧的内容.

所以你在这里告诉Swift的是,取0 ..< 2,并将其改为(0 ..< 2)1.这会引发错误,因为...< operator返回一个不可变的范围 - 一旦创建,就无法更改. 即使你可以改变一个范围,这可能不是你想要做的.从上下文看起来可能你想在右侧添加1,在这种情况下你只需要摆脱=:

for intJ in 0 ..< 2 + 1{

这只是将右侧变为3,所以循环变为[0,1,2].

或者你可能只想告诉它每次增加1,就像标准C风格for循环中的i = 1一样.如果是这样的话,你不需要它.索引为1是默认行为,因此您可以省略整个= 1位:

for intJ in 0 ..< 2 {

或者如果你需要增加1以外的值,你可以使用Strideable protocol,它看起来像:

for intJ in strIDe(from: min,to: max,by: increment) {

只需用适当的数字替换min,max和increment即可.

总结

以上是内存溢出为你收集整理的swift3 – 更改为Swift 3后的变异运算符错误,问题已研究,但无法解决全部内容,希望文章能够帮你解决swift3 – 更改为Swift 3后的变异运算符错误,问题已研究,但无法解决所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1005648.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存