サーチ…


Boolとは何ですか?

Boolは、 truefalse 2つの値を持つブール型です。

let aTrueBool = true
let aFalseBool = false

Boolは、制御フロー文で条件として使用されます。 ifはブール条件を使用して、実行するコードブロックを決定します。

func test(_ someBoolean: Bool) {
    if someBoolean {
        print("IT'S TRUE!")
    }
    else {
        print("IT'S FALSE!")
    }
}
test(aTrueBool)  // prints "IT'S TRUE!"

接頭辞を付けてBoolを否定してください!オペレーター

接頭辞!演算子は引数の論理否定を返します。つまり、 !truefalse返し、 !falsetrue返しtrue

print(!true)  // prints "false"
print(!false) // prints "true"

func test(_ someBoolean: Bool) {
    if !someBoolean {
        print("someBoolean is false")
    }
}

ブール論理演算子

OR(||)演算子は、2つのオペランドの1つが真と評価されると真を返し、そうでない場合は偽を返します。たとえば、次のコードは、OR演算子のどちらかの側の式の少なくとも1つが真であるため、trueと評価されます。

if (10 < 20) || (20 < 10) {
    print("Expression is true")
}

AND(&&)演算子は、両方のオペランドが真と評価される場合にのみtrueを返します。次の例では、2つのオペランド式のうち1つだけが真と評価されるため、falseを返します。

if (10 < 20) && (20 < 10) {
    print("Expression is true")
}

XOR(^)演算子は、2つのオペランドのうち1つだけが真と評価される場合にtrueを返します。たとえば、次のコードは、1つの演算子のみが真と評価されるため、trueを返します。

if (10 < 20) ^ (20 < 10) {
    print("Expression is true")
}

ブール値とインライン条件

ブール値を扱うきれいな方法は、条件付きのインラインをa? b:Swiftの基本操作の一部であるc三項演算子。

インライン条件は3つのコンポーネントで構成されています。

question ? answerIfTrue : answerIfFalse

questionは評価されるブール値で、answerIfTrueは質問が真である場合に返される値で、answerIfFalseは質問が偽である場合に返される値です。

上記の式は次のようになります。

if question {
    answerIfTrue
} else {
    answerIfFalse
}

インライン条件付きでは、ブール値に基づいて値を返します。

func isTurtle(_ value: Bool) {
    let color = value ? "green" : "red"
    print("The animal is \(color)")
}

isTurtle(true) // outputs 'The animal is green'
isTurtle(false) // outputs 'The animal is red'

ブール値に基づいてメソッドを呼び出すこともできます。

func actionDark() {
    print("Welcome to the dark side")
}

func actionJedi() {
    print("Welcome to the Jedi order")
}

func welcome(_ isJedi: Bool) {
    isJedi ? actionJedi() : actionDark()
}

welcome(true) // outputs 'Welcome to the Jedi order'
welcome(false) // outputs 'Welcome to the dark side'

インライン条件は、クリーン1ライナーブール評価を可能にする



Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow