iOS DSL operatörü referansı

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

Operatörler aşağıdaki import ifadeleri aracılığıyla 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ındaysa (bu değerler dahil) true olarak değerlendirilir. İ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
1. ifade İfade 2 3. İfade 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

1. ifade 2. ifadeye eşit olduğunda true olarak değerlendirilir.

Örnek
1. ifade İ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 sonucunu verir.

Örnek
1. ifade İ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 değerini döndürür.

Örnek
1. ifade İ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
1. ifade İ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 döndürür.

Örnek
1. ifade İ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 olarak değerlendirilir.

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

DSL örneği

occupancySensorStarter.occupancy.notEquals(.occupied)

Aritmetik operatörler

Swift'te otomasyon ifadeleri oluşturmak için +, -, * veya / gibi infix operatörleri desteklenmez. Bunun yerine, SDK tarafından sağlanan Plus veya Minus gibi operatörleri 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 bir AND ifadesinde birleştirir ve her iki ifade de true olduğunda true olarak değerlendirilir.

Örnek
1. ifade İ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 tersine çevirir.

Ö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 bir VEYA ifadesinde birleştirir.

Örnek
1. ifade İ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)
}