首页 > 解决方案 > 如何解决:“activityLevel 是一个 Int,表示它们的活跃程度得分 1-10。现在实施。”

问题描述

嗨,伙计们,我尝试解决这个练习:对于大多数应用程序,您需要有一个数据结构来保存有关用户的信息。创建一个包含用户基本信息属性的 User 结构。至少,它应该具有代表用户姓名、年龄、身高、体重和活动水平的属性。您可以通过将 name 设为 String、age 设为 Int、height 和 weight 设为 Double 类型、activityLevel 设为 Int 来表示它们的活跃程度的得分 1-10。立即实施。

但我不明白他什么时候说:activityLevel 是一个 Int,它将代表他们活跃程度的 1-10 分。立即实施。

我不知道这是否正确。

下面贴出我的代码:

struct User {
    let name : String
    var age : Int
    var height : Double
    var weight : Double
    var activityLevel = [1,2,3,4,5,6,7,8,9,10]
}

标签: swiftswift3

解决方案


我认为他们是说您的 activityLevel 是一个 Int,只能是 1-10 的值:

struct User {
    let name : String
    var age : Int
    var height : Double
    var weight : Double
    var activityLevel : Int
}

然后,当您尝试设置该值时,您需要强制它在正确的范围内:

init?(name: String, age: Int, height: Double, weight: Double, activityLevel: Int){
    guard activityLevel > 0 && activityLevel < 11 else { return nil }

    self.name = name
    self.age = age
    self.height = height
    self.weight = weight
    self.activityLevel = activityLevel
}

推荐阅读