问:在编辑器中,我已经声明了一个名为 RGBColor 的结构体,它对 RGB 空间中的颜色对象进行建模。
您的任务是为对象编写自定义初始化方法。使用初始化器为前四个属性赋值。使用分配给这些属性的值为描述属性创建一个值,该值是颜色对象的字符串表示。
例如,给定红色值 86.0、绿色 191.0、蓝色 131.0 和 alpha 值 1.0,每个存储的属性都应保存这些值,并且描述属性应如下所示:
“红色:86.0,绿色:191.0,蓝色:131.0,alpha:1.0”
注意:Init 方法通常以相同的属性声明顺序列出参数。对于此任务,请遵循 red、green、blue、alpha 的顺序。
“糟糕!不要使用 Swift 创建的成员初始化器。按照说明添加您自己的自定义初始化器”
结构体.swift
struct RGBColor {
let red : Double let green : Double let blue : Double let alpha : Double let description : String // 在init (){ red = 86.0 green = 191.0 blue = 131.0 alpha = 1.0 description = "red: \(红色) ,绿色:\(绿色) ,蓝色:
\(蓝色) , alpha: \( alpha ) "
} }
答:该init方法用于使用作为参数传入的值来构造结构体的实例。挑战中给出的值只是示例,而不是硬编码。
因此,该init方法需要四个参数,RGB 和 A。您已经description正确完成了其中一个;这就是难点!!
因此,修改您的方法以获取四个颜色参数,并将传入的值分配给方法内的存储属性。
init (红色: Double , 绿色: Double , 蓝色: Double , alpha : Double ){
self . 红色=红色自我。绿色=绿色自我。蓝色=蓝色自我。阿尔法=阿尔法自我。description = "红色:\(红色) ,绿色:\(绿色) ,蓝色:\(
蓝色) , alpha: \( alpha ) "
}