0
enum MyBool {
case myTrue, myFalse
}
/// A value type whose instances are either `true` or `false`.
extension MyBool {
/// Default-initialize Boolean value to `true`.
init(){ self = .myTrue }
}
extension MyBool : BooleanLiteralConvertible {
static func convertFromBooleanLiteral(value: Bool) -> MyBool {
return value ? myTrue : myFalse
}
}
extension MyBool : BooleanType {
var boolValue: Bool {
switch self {
case .myTrue: return true
case .myFalse: return false
}
}
}
extension MyBool {
// MyBool can be constructed from BooleanType
init(_ v : BooleanType) {
if v.boolValue {
self = .myTrue
} else {
self = .myFalse
}
}
}
問題はmyboolがプロトコルBooleanLiteralConvertibleに準拠していません。 誰も私を正しい方向に向けることができますか?boolのようなすべてのプロパティを持つカスタムブールを作成したいが、デフォルト値は "false"ではなく "true"にする必要があります。
Kartikは、あなたがこれを行うにしようとしている理由を説明してくださいだろうか?これは非常に生産的ではないようです...また、BoolがSwiftのデフォルト値を具体的に持っているとは思いません。 –
Swiftでは、Bool型にはデフォルト値がありません。 – vadian
convertFromBooleanLiteralは非常に初期のSwiftバージョンで使用されていました。 BooleanLiteralConvertibleの現在の定義を参照してください。 –