这是必要的实现音量的电视。struct设置var音量范围0... 100。如何写打印音量水平?
另一个问题:有没有可能更好地使电视的品牌和型号在同一领域?var tvName
struct Setting {
var volume = (0...100)
enum Display: String {
case colorful = "Color"
case blackwhite = "Black&White"
}
}
class Tv {
var tvName = (firm: "", model: 0)
var isActive = Bool()
enum Channels: String {
case news = "News"
case serials = "Serials"
case horror = "Horror"
case comedy = "Comedy"
case history = "History"
case cartoons = "Cartoons"
}
func tvStatus() {
if isActive == true {
print("The TV \(tvName.0) \(tvName.1) is on and shows the channel \(channelOldTv), display: \(display), volume: ")
} else {
print("TV is off")
}
}
}
let oldTv = Tv()
let channelOldTv = Tv.Channels.serials.rawValue
let display = Setting.Display.colorful.rawValue
oldTv.tvName.firm = "LG"
oldTv.tvName.model = 6643
oldTv.isActive = true
oldTv.tvStatus()
2条答案
按热度按时间uajslkp61#
从我的Angular 来看,您需要稍微调整一下代码,因为数据类型没有很好地实现。我将这样编写代码:
正如上面提到的,变量
volume
必须保存值。volumeRange
表示volume
必须包含的范围。为此,在初始化设置时,必须对volume
字段进行一些验证。pftdvrlh2#
您需要在Setting结构中使用另一个变量来保存当前选定的值。
例如:
var currentVolume = 50
如果您希望能够锁定currentVolume变量,使其只能在0到100之间设置,一种可能的实现方式是将currentVolume变量私有化为Setting结构体,并创建一个基于给定输入设置音量的函数,或者创建一个基于某个步长递增/递减音量的函数,如下所示:
您的卷变量
var volume = (0...100)
的类型为ClosedRange<Int>
。它不能保存特定值,它包含的是一个具有上下限的范围。你可以通过按住option键****然后点击变量名来对任何变量进行双重检查(在本例中,点击“音量”)。您可以在Apple的文档中找到有关ClosedRange类型和其他类型的信息,请访问:https://developer.apple.com/documentation/swift/closedrange