it-swarm-ja.com

bool.boolValueはいつ使用する必要がありますか?

最近、同僚が次の方法でブール値をチェックするようになりました。

if boolVar.boolValue {
    ...
}

これらの変数は通常、次のいずれかを使用してブール型として明示的に宣言されます。

var boolVar: Bool!

または

var boolVar = false

変数がブール値として宣言されている場合は、そのように扱われるべきであると私は理解しています。つまり、trueまたはfalseのみである可能性があるため、そのように扱う必要があり、正確にboolValueプロパティに飛び込む必要はありません。同じ。

これはAppleがそれを定義する方法です:

extension Bool : BooleanType {
    /// Identical to `self`.
    public var boolValue: Bool { get }
    /// Construct an instance representing the same logical value as
    /// `value`.
    public init<T : BooleanType>(_ value: T)
}

これは、BooleanTypeに準拠する独自の型を作成するのに役立つように思われます。私もこれを感じます.boolValueプロパティは、辞書またはJSON応答からブール値をアンラップする場合に便利ですが、この場合は奇妙に感じます。

私の質問は、この方法でブール値をチェックする必要がある場合はありますか?

5
Slayter

決して、いくつかの理由で:

  1. BooleanTypeはSwift 3で削除されました。
  2. Boolに対する.boolValueの実装は、selfを返すだけです。なぜ1つの.boolValueで停止するのですか?なぜboolVar.boolValue.boolValue.boolValue.boolValue.boolValue.boolValueではないのですか?