gpt4 book ai didi

ios - 访问类函数时 Swift 中的预期声明错误

转载 作者:行者123 更新时间:2023-11-29 01:12:22 27 4
gpt4 key购买 nike

我是编码新手,正在尝试了解类在 Swift 中的工作原理。我在 Xcode 7.2.1 中编写了以下代码,并收到错误“预期声明”,该错误指向行中的第一个字符myFirstCar.refuel()

    import UIKit

class ViewController: UIViewController {

class Car {

var weight:Int = 1200
var gas:Int = 100
var maxGas:Int = 1000

func refuel() {
if gas < 900 {
gas += 100
} else {
gas += (maxGas - gas)
}
}
}

let myFirstCar = Car()

myFirstCar.refuel()

}

我希望这段代码能够在类中运行 refuel() 函数。

我环顾四周,认为这是 Car 类内部函数初始化的问题。我尝试初始化类中的每个变量以及初始化函数,但我收到指向同一行的相同错误代码。

我现在认为在处理类时我可能会错过一些不同的基本规则。

例如,我不知道 class ViewController: UIViewController 是否是一个问题,因为我的 class Car 包含在其中,并且可能正在制作 Car 类是ViewController的子类?

就像我说的,我环顾四周并在网上找到了这段代码,它与我的代码基本相同。

class Tank {
class var bonusDamage: Double {
return Double(Upgrade.level) * 2.5
}

let baseDamage = 10.0
var damage: Double {
return self.baseDamage + Tank.bonusDamage
}

class func upgrade() {
Upgrade.level += 1
}

struct Upgrade {
static var level = 0
}
}

var tank = Tank()

println(tank.damage)
// 10.0

Tank.upgrade()

println(tank.damage)
// 12.5

Tank.upgrade()

println(tank.damage)
// 15.0

如果我将代码复制并粘贴到 Xcode 中,它会在该行给出相同的错误“Expected declaration”:

println(tank.damage)
// 10.0

我想我真正的问题是我不明白这个错误。如果有人能指出我寻找答案的方向,将不胜感激!

最佳答案

问题出现是因为你在错误的地方调用了一个函数:

myFirstCar.refuel()

同样适用于:

println(tank.damage)
// 10.0

Tank.upgrade()

println(tank.damage)
// 12.5

Tank.upgrade()

println(tank.damage)
// 15.0

必须在 func 范围内调用它;例如:

override func viewDidLoad()
{
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.

myFirstCar.refuel()

/*

println(tank.damage)
// 10.0

Tank.upgrade()

println(tank.damage)
// 12.5

Tank.upgrade()

println(tank.damage)
// 15.0
*/
}

顺便说一下,如果您使用的是 Swift 2,println 已重命名为 print

关于ios - 访问类函数时 Swift 中的预期声明错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35590416/

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