我想在Swift中为macOS(控制台应用程序)编写一个程序,该程序将占用用户两个时间间隔,并向用户输出基本操作,例如并集,交集和区别,以区分关闭和打开时间间隔。
我的问题是我不知道如何制作带范围的readLine,并且由于新的Swift 5版本,有关范围结构的信息很少。
我应该使用范围还是其他结构/类型?
例如:
输入:
[-10,3)
(2,+∞)
输出:
Union: [-10,3) U (2,+∞) = [-10, +∞)
Intersection: [-10,3) ∩ (2,+∞) = [2,3)
Difference: [-10,3) \ (2,+∞) = [-10, 2)
答案 0 :(得分:0)
我的问题是我不知道如何制作带范围的readLine
没有内置的魔术方法。
您实质上已经发明或强加了用户必须使用的符号。但是,用户输入只是一个字符串。由您来分析用户输入,并查看它是否/如何符合该表示法。构建严格的解析器是一个大课题。
更好的解决方案可能是构建一个用户界面,该界面允许用户直观地构造您要的对象类型。例如,您可以选择间隔类型,并为下限选择一个框,并为上限选择一个框。像无穷大之类的东西也将在视觉上输入,而不是使用户学会键入无穷大符号。选择要应用于多个范围(例如交集)的操作也是如此。
另一方面,在幕后,数学将变得微不足道,因为Swift Ranges可以为您提供开箱即用所需的一切。