gpt4 book ai didi

swift - 变量从未改变

转载 作者:搜寻专家 更新时间:2023-11-01 06:45:33 26 4
gpt4 key购买 nike

我一直在关注制作简单的临时转换应用程序的应用程序教程,

我有如下所示的这些代码行

    // get the users imput : c
var celsius:Int = celsiusValue.text.toInt()!

//formula : c to f
// 5f = 9c + 160

// output : f
var fah:Int = ( 9 * celsius + 160 ) / 5

print(fah)

我遇到了一些错误,我不明白为什么会这样,

'String' does not have a member named 'Int'

这意味着 Int 不能使用,因为显示的字符串中没有整数?

Value of optional type 'String?' not unwrapped; did you mean to use '!' or '?'?

我把代码改成了

var celsius:Int = celsiusValue.text!.toInt()!

正如它在错误帮助程序中显示的那样,但它仍然给我与

相同的错误

Value of optional type 'String?' not unwrapped; did you mean to use '!' or '?'?

所以现在我对此感到困惑,我已经阅读了有关变量从未发生过突变的其他线程,但它似乎并没有帮助我解决它发生的事情

最佳答案

评论太长了...

“variable was never mutated”在 Swift 中不是 fatal error 。它更像是一个指南,也是一个非常烦人的指南。每次你创建一个新变量时它都会这样说,因为你还没有改变它。 Xcode 希望您使用 let 将所有非可变内容编写为常量。

可选类型“字符串”的值?未展开;你是不是想用'!'或者 '?'?这是一个非常重要的问题,您可以在 SO 上找到关于它的数千个问题。 Swift 有可选值,这意味着它可以保存一个值,也可以什么都不保存。然后它将为零。这可能会导致错误,这就是您使用“!”的原因。和 ”?”。如果你用“!”声明或解包结果将被处理,就像它不是可选的一样。它可能仍然是 nil,但不会检查它是否为 nil。如果你想让它更模糊,使用“?”这样 Xcode 会不断警告你你正在使用一个可选的。

但是关于这方面的更多信息以及如何使用可选值编写代码可以通过 google/SO 找到。

至于String => Int。如果我没记错的话,这只适用于 NSStrings。所以确保你在那里得到一个 NSString 。否则,您必须将其转换为 NSString。

关于swift - 变量从未改变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31291104/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com