【问题标题】:Basic Switch Error基本开关错误
【发布时间】:2015-12-24 21:59:01
【问题描述】:

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

2a.向 Peach 类添加一个名为“varieties”的类型属性。它应该包含一系列不同类型的桃子。

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

2c。创建 Peach 类的实例并调用方法成熟()。

这并不难。对于成熟函数,我决定使用 switch 控制语句,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"
        }
    }
}

在有开关的那一行,这会返回错误:Expected expression after operator。查看颜色格式,我的代码似乎没有正确处理变量。那么,我该如何解决这个错误,它到底是什么意思?我确信这是一个只有初学者才会犯的简单错误,因此感谢您耐心地帮助我。

【问题讨论】:

    标签: ios switch-statement swift2


    【解决方案1】:

    问题从softness ++ 开始。你必须摆脱那个空间。但是当你这样做时,它会抱怨softness 参数到ripen 是不可变的。您可能应该只删除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
        }
    
        ...
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-12-04
      • 1970-01-01
      • 1970-01-01
      • 2016-10-07
      • 2014-03-12
      • 1970-01-01
      • 2021-09-08
      相关资源
      最近更新 更多