我试图从每个数组中的单词串采取的最后一个字符变异阵列的价值:斯威夫特3 - 有问题的功能
var nonsenseArray = ["bungalow", "buffalo", "indigo", "although", "Ontario", "albino", "%$&#!"]
,并创建一个字符串每个字符在函数内使用for-loop。我觉得我有一个很好的答案,但我得到以下错误:
cannnot use mutating member on immutable value: "every" is a "let" constant
下面是我的代码:
func combineLastCharacters(array: [String]) -> String {
var myString = ""
var array = array
for every in array {
myString = "\(every.remove(at: every.index(before:
every.endIndex)))" + myString
}
return myString
我从其他的答案发现,通过使用:
var array = array
数组应该变成可变的,所以我可以使用它的remove方法。任何帮助是极大的赞赏。
我想创建的字符串是“呜呼!”
现在我得到一个编译器警告,并没有输出,当我尝试打印功能。警告是:“变量数组从未突变:考虑更改为'let'常量”。我用你的建议在每个之前加var,并且解决了第一个问题。 –
@Cali_Ranger关于编译器警告,请注意当复制函数时,我删除了'var array = array'行。关于没有输出:你打印什么代码? –
我认为是由于编译器警告导致输出不足。一旦我删除了'var array = array',代码就工作了。 –