我正在 Swift 中构建一个空闲点击器应用程序,并通过一个函数添加自动点击。我希望能够通过函数的输入来输入价格,但由于输入是一个常量,我无法像我希望的那样在每次用户单击升级时将成本价格添加 9%。
例如,如果我在初始价格中输入 50.0,我该如何使其在用户每次单击它时增加 10%。
func upgrade(intialPrice : Float) {
var upgradePrice = intialPrice
AutoClicks += 1
totalClicks = totalClicks - Int(upgradePrice)
upgradePrice = upgradePrice + (upgradePrice * 0.1)
burritoLvl1Label.text = ("$" + "\(Int(upgradePrice))")
}
我对编码非常陌生,因此如果您看到任何可以缩短这段代码的方法,那将非常有帮助。
最佳答案
其他答案建议使用 inout
参数,虽然这可行,但我不推荐这种模式。一般来说,最好避免函数中的“副作用”,并且仅在有充分理由时才使用 inout
。
更通用的方法是使用一个返回
新值的函数。
您可能还想考虑使用 Decimal
处理货币时,而不是 Float
。
同样,更新标签可能不应该在此函数中
func upgrade(initialPrice : Decimal) -> Decimal {
autoClicks += 1
totalClicks -= Int(truncating: initialPrice as NSDecimalNumber)
return initialPrice * 1.1
}
然后你可以像这样调用这个函数:
price = upgrade(initialPrice: price)
burritoLvl1Label.text = ("$" + "\(Int(truncating:price as NSDecimal))")
关于ios - 如何在 Swift 中编辑函数输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54287089/