مرجع مشغّل DSL لنظام التشغيل iOS

تسمح لك عوامل التشغيل بالتحقّق من قيمة سمات السمة مقابل قيم معيّنة، ومقارنتها ببعضها البعض، ودمج التعابير المستخدَمة في عُقد condition.

تتوفّر عوامل التشغيل من خلال عبارات import التالية:

import GoogleHomeSDK

عوامل تشغيل المقارنة

بين

يتم تقييم التعبير على أنّه true عندما تكون قيمة "التعبير 1" بين قيمة "التعبير 2" و"التعبير 3" (شاملةً القيمتَين). يتم ترتيب التعابير بشكل مختلف استنادًا إلى نوع بياناتها. يتم ترتيب أنواع البيانات البسيطة، مثل الأرقام والسلاسل، بالطريقة نفسها في Swift.

مثال
التعبير 1 التعبير 2 التعبير 3 النتيجة
6 1 3 false
2 1 3 true

مثال على DSL

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

يساوي

يتم تقييم التعبير على أنّه true عندما يكون "التعبير 1" مساويًا لـ "التعبير 2".

مثال
التعبير 1 التعبير 2 النتيجة
6 1 false
2 2 true

مثال على DSL

lightOnOffState.onOff.equals(true)

greaterThan

يتم تقييم التعبير على أنّه true عندما يكون "التعبير 1" أكبر من "التعبير 2".

مثال
التعبير 1 التعبير 2 النتيجة
6 1 true
1 6 false

مثال على DSL

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

greaterThanOrEquals

يتم تقييم التعبير على أنّه true عندما يكون "التعبير 1" أكبر من "التعبير 2" أو يساويه.

مثال
التعبير 1 التعبير 2 النتيجة
8 6 true
6 6 true
1 6 false

مثال على DSL

starterNode.measuredValue.greaterThanOrEquals(50)

lessThan

يتم تقييم التعبير على أنّه true عندما يكون "التعبير 1" أقل من "التعبير 2".

مثال
التعبير 1 التعبير 2 النتيجة
6 1 false
1 6 true

مثال على DSL

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

lessThanOrEquals

يتم تقييم التعبير على أنّه true عندما يكون "التعبير 1" أقل من "التعبير 2" أو يساويه.

مثال
التعبير 1 التعبير 2 النتيجة
8 6 false
6 6 true
1 6 true

مثال على DSL

starterNode.measuredValue.lessThanOrEquals(50)

notEquals

يتم تقييم التعبير على أنّه true عندما لا يكون "التعبير 1" مساويًا لـ "التعبير 2".

مثال
التعبير 1 التعبير 2 النتيجة
6 1 true
1 6 true
2 2 false

مثال على DSL

occupancySensorStarter.occupancy.notEquals(.occupied)

عوامل التشغيل الحسابية

لا تتوافق لغة Swift مع عوامل التشغيل التي تظهر بين القيمتَين، مثل + أو - أو * أو /، لإنشاء تعابير التشغيل الآلي. بدلاً من ذلك، استخدِم عوامل التشغيل التي توفّرها حزمة SDK، مثل Plus أو Minus.

إضافة

عامل الإضافة .plus( )

مثال على DSL

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

طرح

عامل الطرح .minus( )

مثال على DSL

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

ضرب

عامل الضرب .multiply( )

مثال على DSL

val millis = seconds.multiply(1000)

قسمة

عامل القسمة .divide( )

مثال على DSL

val rpm = revolutions.divide(minutes)

العوامل المنطقية

و

يجمع بين تعبيرَين في تعبير منطقي AND، ويتم تقييمه على أنّه true عندما يكون كلا التعبيرين true.

مثال
التعبير 1 التعبير 2 النتيجة
false false false
true false false
false true false
true true true

مثال على DSL

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

ليس

يعكس القيمة المنطقية لتعبير.

مثال
التعبير النتيجة
true false
false true

مثال على DSL

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

أو

يجمع بين تعبيرَين في تعبير منطقي OR.

مثال
التعبير 1 التعبير 2 النتيجة
false false false
true false true
false true true

مثال على DSL

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