Swift 使用变量reach 9223372036854775808会使我的程序崩溃
使用变量reach 9223372036854775808会使我的程序崩溃 我没有找到任何信息Swift 使用变量reach 9223372036854775808会使我的程序崩溃,swift,Swift,使用变量reach 9223372036854775808会使我的程序崩溃 我没有找到任何信息 import UIKit class ViewController: UIViewController { @IBOutlet weak var disview: UILabel! var dislikes = 1 @IBAction func dislike(_ sender: Any) { //Add to dislikes VAR and refresh displa
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var disview: UILabel!
var dislikes = 1
@IBAction func dislike(_ sender: Any) { //Add to dislikes VAR and refresh display
dislikes += dislikes //when this reaches 9223372036854775808 my program crashes
print(dislikes)
disview.text = "\(dislikes)"
}
@IBAction func reset(_ sender: Any) { //Reset dislikes varibles to 0 and refresh display
dislikes = 0
print("reset dislikes")
disview.text = "\(dislikes)"
}
我得到:
线程1:EXC_BAD_指令代码=EXC_I386_INVOP,子代码=0x0
是的,整数溢出将使Swift中的程序崩溃 如果要允许溢出,可以使用&+&-&*
这个数字不适合有符号的64位整数。既然你永远不会有这么多不喜欢的东西,那就不成问题了。@rmaddy他把这个数字加起来,每次都加倍。这不是像100次按下吗?printInt.max,你会知道为什么。执行printInt.max会使我的程序崩溃,但我得到了一个离题的话题,但为什么不喜欢从1开始而不是从0开始?这是不是有点消极;或者只是不喜欢&+=不喜欢。当然,它应该是不喜欢的&+=1。
dislikes = dislikes &+ dislikes