Swift If-Statement数组操作范围

时间:2018-05-02 13:32:58

标签: swift if-statement scope

我有一个我想操纵的基本数组。似乎在我的if语句的括号内我可以成功地操作数组(屏幕的右侧显示值已经改变);但是,一旦我离开if语句,更改似乎就消失了(屏幕的右侧显示原始值,而不是更改的值)。谢谢你的帮助!

var originalInfo = """
This
Is
A
Test
String
"""

// split string

var SplitInfo = originalInfo.split(separator: "\n")

// Manipulate Array

if SplitInfo[1].hasPrefix("I") == true {
    SplitInfo[1].replacingOccurrences(of: "s", with: "s not")
}

SplitInfo[1]

1 个答案:

答案 0 :(得分:0)

方法replaceOccurences(of:with:)返回带有新值的String,因此您需要将新值分配给变量

SplitInfo[1] = SplitInfo[1].replacingOccurrences(of: "s", with: "s not")

只有这样你才能看到变化。如果您单击该方法并查看Xcode右侧窗格中的“快速帮助”部分,您将看到

Range<String.Index>? = default) -> String

-> String表示它返回一个字符串,因此您需要将其分配给某些内容。

如果您尝试维护String,请将此字符串划分为

var SplitInfo = originalInfo.components(separatedBy: "\n") 

这将返回[String]而不是子串。

希望这有帮助。

  • 根据OP的评论进行编辑*