基本开关错误

Basic Switch Error

我是 Swift 的编程新手,我正在参加基本的在线课程来教我语法。在 classes 上的一门课程中,它要求我这样做:

2a。添加类型 属性 到名为 "varieties" 的 Peach class。它应该包含一系列不同类型的桃子。

2b。添加一个名为 ripen() 的实例方法,该方法增加存储的 属性、柔软度和 returns 指示桃子是否成熟的字符串的值。

2c。创建 Peach 的实例 class 并调用方法 ripen().

没那么难。对于成熟功能,我决定使用开关控制语句,3是最佳成熟度,1和2太硬,4和5太熟了。

class Peach {
    let variety: String
    static let varieties = ["Bonita", "Cardinal", "Frost", "Golden"]

    var softness: Int

    init(variety: String, softness: Int) {
        self.variety = variety
        self.softness = 0
    }

    func ripen(softness: Int) -> String {

    softness ++

        switch softness {

        case 1, 2 :
            return "Not ready yet"
        case 3:
            return "Ripe"
        case 4,5:
            return "Over ripe"
        default:
            return "Gross"
        }
    }
}

在开关线上,这个returns错误:运算符后的预期表达式。查看颜色格式,我的代码似乎没有正确处理变量。那么,我该如何解决这个错误,它到底是什么意思呢?我敢肯定这是一个只有初学者才会犯的简单错误,因此非常感谢您耐心地帮助我。

问题从 softness ++ 开始。你必须摆脱那个 space。但是当你这样做时,它会抱怨 softnessripen 的参数是不可变的。您可能应该只删除 ripen 的参数,在这种情况下,它会知道您想要增加 softness 属性。

class Peach {
    let variety: String
    static let varieties = ["Bonita", "Cardinal", "Frost", "Golden"]

    var softness: Int

    init(variety: String, softness: Int) {
        self.variety = variety
        self.softness = 0
    }

    func ripen() -> String {
        softness++

        switch softness {

        case 1, 2 :
            return "Not ready yet"
        case 3:
            return "Ripe"
        case 4,5:
            return "Over ripe"
        default:
            return "Gross"
        }
    }
}

就个人而言,我可能倾向于将 variety 定义为 enum:

class Peach {
    enum Variety {
        case Bonita
        case Cardinal
        case Frost
        case Golden
    }

    let variety: Variety

    var softness: Int

    init(variety: Variety, softness: Int) {
        self.variety = variety
        self.softness = 0
    }

    ...
}