在Swift中编写这个条件程序的最佳方法是什么?

时间:2018-02-23 16:21:47

标签: swift

let roomSize = "medium"
let sofasize = "large"

if roomSize == "large" {
    print ("can fit")
} else if roomSize == "medium" && ( sofasize == "medium" || sofasize == "small") {
    print ("can fit")
} else if roomSize == "small" && sofasize == "small" {
    print ("can fit")
} else {
    print("nope, cannot fit")
}

在swift中格式化此程序的最佳方法是什么?

2 个答案:

答案 0 :(得分:4)

嗯,“最好”和“最佳”是主观的。我的建议是避免stringly-typed编程。使用enum

我假设你会从外部源(可能是一些JSON)获得"small""large"等字符串。如果您使用enum作为原始值进行String,则可以为您解析字符串。然后,您可以添加某些rank类型的Comparable属性,例如IntDouble,并使用rank生成enum本身{ {1}}。

Comparable

答案 1 :(得分:1)

其中一个可能的想法:

enum MySize: Int {
    case small = 1, medium = 2, large = 3
}

let myRoomSize: MySize = .medium
let mySofaSize: MySize = .large

if mySofaSize.rawValue <= myRoomSize.rawValue {
    debugPrint("can fit")
} else {
    debugPrint("nope, cannot fit")
}

但......我认为其他概念也完全有效。