Dav*_*vid 2 swift swift-playground
我有一段简单的Swift代码:
let message = "This is a test"
if message.range(of:"test") != nil {
let message = "Changed string"
}
print(message)
Run Code Online (Sandbox Code Playgroud)
我想要做什么:如果 stringmessage包含 string test,请将其更改为Changed string. 否则保持不变。
我收到以下警告:
从未使用过不可变值“消息”的初始化;考虑替换为“_”的赋值或将其删除
对于线
let message = "Changed string"
Run Code Online (Sandbox Code Playgroud)
此外,打印输出仍然This is a test而不是预期的Changed string。
我究竟做错了什么?
如果你想让它改变它,你应该让它成为一个变量并使用相同的变量。
var message = "This is a test"
if message.range(of:"test") != nil {
message = "Changed string"
}
print(message)
Run Code Online (Sandbox Code Playgroud)
小智 6
所以,有些人已经给了你合理的、技术上正确的答案,但我想解释一下:
let意味着它是一个常量,即不可变的varie:var message = "This is a test"
Bool,而不是NSRange必须Bool通过测试来转换为!= nil综上所述,最终代码如下:
var message = "This is a test"
if message.contains("test") {
message = "Changed string"
}
print(message)
Run Code Online (Sandbox Code Playgroud)
希望有帮助!
| 归档时间: |
|
| 查看次数: |
14539 次 |
| 最近记录: |