iOS DSL operatörü referansı

Operatörler, özellik özelliklerinin değerini belirli değerlere göre kontrol etmenize, 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

1. ifadenin değeri 2. ifade ile 3. ifade arasında olduğunda (bu değerler dahil) true değerini döndürür. İfadeler, veri türlerine göre farklı şekilde sıralanır. Sayılar ve dizeler gibi basit veri türleri, Swift'te olduğu gibi sıralanır.

Örnek
İfade 1 İfade 2 İfade 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

1. ifade 2. ifadeye eşit olduğunda true değerini döndürür.

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

DSL örneği

lightOnOffState.onOff.equals(true)

greaterThan

1. ifade 2. ifadeden 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

1. ifade 2. ifadeden büyük veya ona eşit olduğunda true değerini döndürür.

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

DSL örneği

starterNode.measuredValue.greaterThanOrEquals(50)

lessThan

1. ifade 2. ifadeden azsa true değerini döndürür.

Ö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

1. ifade 2. ifadeden küçük veya ona eşit olduğunda true değerini döndürür.

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

DSL örneği

starterNode.measuredValue.lessThanOrEquals(50)

notEquals

1. ifade 2. ifadeye eşit olmadığında true değerini döndürür.

Ö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

Swift'te otomasyon ifadeleri oluşturmak için +, -, * veya / gibi kesme çizgili operatörler 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 bir VE ifadesinde birleştirir. Her iki ifade de true olduğunda true olarak değerlendirilir.

Ö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 ifadesi halinde 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)
}