Référence des opérateurs DSL iOS

Les opérateurs vous permettent de vérifier la valeur des attributs de trait par rapport à des valeurs spécifiques, de les comparer les uns aux autres et de combiner les expressions utilisées dans les nœuds condition.

Les opérateurs sont mis à disposition via les instructions import suivantes:

import GoogleHomeSDK

Opérateurs de comparaison

entre

A pour résultat true lorsque la valeur de l'expression 1 est comprise entre celle de l'expression 2 et celle de l'expression 3 (inclus). Les expressions sont classées différemment selon leur type de données. Les types de données simples tels que les nombres et les chaînes sont classés de la même manière que dans Swift.

Exemple
Expression 1 Expression 2 Expression 3 Résultat
6 1 3 false
2 1 3 true

Exemple de DSL

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

est égal à

Renvoie true lorsque l'expression 1 est égale à l'expression 2.

Exemple
Expression 1 Expression 2 Résultat
6 1 false
2 2 true

Exemple de DSL

lightOnOffState.onOff.equals(true)

greaterThan

Renvoie true lorsque l'expression 1 est supérieure à l'expression 2.

Exemple
Expression 1 Expression 2 Résultat
6 1 true
1 6 false

Exemple de DSL

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

greaterThanOrEquals

Renvoie la valeur true lorsque l'expression 1 est supérieure ou égale à l'expression 2.

Exemple
Expression 1 Expression 2 Résultat
8 6 true
6 6 true
1 6 false

Exemple de DSL

starterNode.measuredValue.greaterThanOrEquals(50)

lessThan

prend la valeur true lorsque l'expression 1 est inférieure à l'expression 2.

Exemple
Expression 1 Expression 2 Résultat
6 1 false
1 6 true

Exemple de DSL

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

lessThanOrEquals

Renvoie true lorsque l'expression 1 est inférieure ou égale à l'expression 2.

Exemple
Expression 1 Expression 2 Résultat
8 6 false
6 6 true
1 6 true

Exemple de DSL

starterNode.measuredValue.lessThanOrEquals(50)

notEquals

Renvoie true lorsque l'expression 1 n'est pas égale à l'expression 2.

Exemple
Expression 1 Expression 2 Résultat
6 1 true
1 6 true
2 2 false

Exemple de DSL

occupancySensorStarter.occupancy.notEquals(.occupied)

Opérateurs arithmétiques

Les opérateurs infixes tels que +, -, * ou / ne sont pas compatibles avec la création d'expressions d'automatisation en Swift. Utilisez plutôt les opérateurs fournis par le SDK, tels que Plus ou Minus.

Ajouter

L'opérateur d'addition .plus( ).

Exemple de DSL

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

Soustraire

L'opérateur de soustraction .minus( ).

Exemple de DSL

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

Multiplier

L'opérateur de multiplication .multiply( ).

Exemple de DSL

val millis = seconds.multiply(1000)

Diviser

L'opérateur de division .divide( ).

Exemple de DSL

val rpm = revolutions.divide(minutes)

Opérateurs logiques

et

Combine deux expressions dans une expression logique AND, qui prend la valeur true lorsque les deux expressions sont true.

Exemple
Expression 1 Expression 2 Résultat
false false false
true false false
false true false
true true true

Exemple de DSL

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

not

Négation de la valeur logique d'une expression.

Exemple
Expression Résultat
true false
false true

Exemple de DSL

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

ou

Combine deux expressions en une expression OR logique.

Exemple
Expression 1 Expression 2 Résultat
false false false
true false true
false true true

Exemple de DSL

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