Quando dovrebbe essere usato bool.boolValue?

5

Recentemente un collaboratore ha iniziato a verificare i valori booleani nel seguente modo:

if boolVar.boolValue {
    ...
}

Queste variabili sono generalmente dichiarate esplicitamente come tipi booleani usando:

var boolVar: Bool!

o

var boolVar = false

Sono consapevole che se una variabile è dichiarata come booleana, dovrebbe essere trattata come tale. Significa che può essere sempre solo true o false , quindi dovrebbe essere trattato come tale e non dovrebbe essere necessario immergersi nella proprietà boolValue che afferma che è esattamente la stessa.

Ecco come la definisce 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)
}

Mi sembra che questo sia utile per creare i tuoi tipi conformi a BooleanType . Ritengo inoltre che questa proprietà .boolValue possa tornare utile se si scartano booleani da un dizionario o una risposta JSON, ma in questa istanza ci si sente strani.

La mia domanda è, c'è mai un caso in cui dovremmo controllare i booleani in questo modo?

    
posta Slayter 25.10.2016 - 17:20
fonte

1 risposta

1

Mai, per diversi motivi:

  1. BooleanType è stato rimosso in Swift 3.
  2. L'implementazione di .boolValue per Bool restituisce solo self . Perché fermarsi a un solo .boolValue ? Perché non boolVar.boolValue.boolValue.boolValue.boolValue.boolValue.boolValue ?
risposta data 30.04.2017 - 07:11
fonte

Leggi altre domande sui tag