iOS DSL operatörü referansı

Operatörler, özellik özelliklerinin değerini belirli değerlere göre kontrol etmenize, bunları birbiriyle karşılaştırmanıza ve condition düğümlerinde kullanılan ifadeleri birleştirmenize olanak tanır.

Operatörler aşağıdaki import ifadeleriyle kullanılabilir:

import GoogleHomeSDK

Karşılaştırma operatörleri

arasında

İfade 1'in değeri, İfade 2 ile İfade 3'ün değeri arasında (bu değerler dahil) olduğunda true sonucunu verir. İfadeler, veri türlerine göre farklı şekilde sıralanır. Sayılar ve dizeler gibi basit veri türleri, Swift'tekiyle aynı şekilde sıralanır.

Örnek
İfade 1 İfade 2 Expression 3 Sonuç
6 1 3 false
2 1 3 true

DSL örneği

let time = stateReader(structure, Google.TimeTrait)
condition {
  time.currentTime
     .between(
      time.sunsetTime,
      time.sunriseTime)
}

equals

İfade 1, İfade 2'ye eşit olduğunda true sonucunu verir.

Örnek
İfade 1 İfade 2 Sonuç
6 1 false
2 2 true

DSL örneği

lightOnOffState.onOff.equals(true)

greaterThan

İfade 1, İfade 2'den büyük olduğunda true değerini döndürür.

Örnek
İfade 1 İfade 2 Sonuç
6 1 true
1 6 false

DSL örneği

// 1555 = 15 degrees C ~ 60 degrees F
temperatureMeasurement.measuredValue.greaterThan(1555)

greaterThanOrEquals

İfade 1, İfade 2'den büyük veya ona eşit olduğunda true sonucunu verir.

Örnek
İfade 1 İfade 2 Sonuç
8 6 true
6 6 true
1 6 false

DSL örneği

starterNode.measuredValue.greaterThanOrEquals(50)

lessThan

İfade 1, İfade 2'den küçük olduğunda true değerini verir.

Örnek
İfade 1 İfade 2 Sonuç
6 1 false
1 6 true

DSL örneği

// 1555 = 15 degrees C ~ 60 degrees F
temperatureMeasurement.measuredValue.lessThan(1555)

lessThanOrEquals

İfade 1, İfade 2'den küçük veya ona eşit olduğunda true değerini verir.

Örnek
İfade 1 İfade 2 Sonuç
8 6 false
6 6 true
1 6 true

DSL örneği

starterNode.measuredValue.lessThanOrEquals(50)

notEquals

İfade 1, İfade 2'ye eşit olmadığında true sonucunu verir.

Örnek
İfade 1 İfade 2 Sonuç
6 1 true
1 6 true
2 2 false

DSL örneği

occupancySensorStarter.occupancy.notEquals(.occupied)

Aritmetik operatörler

+, -, * veya / gibi infix operatörleri, Swift'te otomasyon ifadeleri oluşturmak için desteklenmez. Bunun yerine, SDK tarafından sağlanan operatörleri (ör. Plus veya Minus) kullanın.

Ekle

Toplama operatörü .plus( ).

DSL örneği

var totalCount = 0
...
totalCount = totalCount.plus(1)

Çıkarma

Çıkarma operatörü .minus( ).

DSL örneği

var countdown = 10
...
countdown = countdown.minus(1)

Çarpma

Çarpma operatörü .multiply( ).

DSL örneği

val millis = seconds.multiply(1000)

Bölme

Bölme operatörü .divide( ).

DSL örneği

val rpm = revolutions.divide(minutes)

Mantıksal operatörler

ve

İki ifadeyi mantıksal AND ifadesinde birleştirir. Her iki ifade de true olduğunda true değerini verir.

Örnek
İfade 1 İfade 2 Sonuç
false false false
true false false
false true false
true true true

DSL örneği

condition {
  let exp1 = armState.armState
  let exp2 = doorLockState.lockState
  exp1.and(exp2)
}

değil

Bir ifadenin mantıksal değerini olumsuzlar.

Örnek
İfade Sonuç
true false
false true

DSL örneği

condition {
  let exp1 = armState.armState
  let exp2 = doorLockState.lockState
  exp1.and(exp2.not())
}

veya

İki ifadeyi mantıksal VEYA ifadesinde birleştirir.

Örnek
İfade 1 İfade 2 Sonuç
false false false
true false true
false true true

DSL örneği

condition {
  let exp1 = doorLockState.lockState.equals(.unlocked)
  let exp2 = contactSensorState.stateValue.equals(false)
  exp1.or(exp2)
}