ऑपरेटर की मदद से, खास वैल्यू के हिसाब से विशेषता वाले एट्रिब्यूट की वैल्यू की जांच की जा सकती है. साथ ही, उनकी एक-दूसरे से तुलना की जा सकती है. इसके अलावा, condition नोड में इस्तेमाल किए गए एक्सप्रेशन को जोड़ा जा सकता है.
ऑपरेटर, इन import स्टेटमेंट के ज़रिए उपलब्ध कराए जाते हैं:
import GoogleHomeSDK
तुलना करने वाले ऑपरेटर
बीच में
जब एक्सप्रेशन 1 की वैल्यू, एक्सप्रेशन 2 और एक्सप्रेशन 3 की वैल्यू के बीच (इन दोनों को शामिल करके) होती है, तो true के तौर पर आकलन किया जाता है. एक्सप्रेशन को उनके डेटा टाइप के आधार पर अलग-अलग रैंक दी जाती है. संख्याओं और स्ट्रिंग जैसे सामान्य डेटा टाइप को उसी तरह रैंक किया जाता है जिस तरह Swift में किया जाता है.
| एक्सप्रेशन 1 | एक्सप्रेशन 2 | एक्सप्रेशन 3 | नतीजा |
|---|---|---|---|
6 |
1 |
3 |
false |
2 |
1 |
3 |
true |
डीएसएल का उदाहरण
let time = stateReader(structure, Google.TimeTrait)
condition {
time.currentTime
.between(
time.sunsetTime,
time.sunriseTime)
}
बराबर
जब एक्सप्रेशन 1, एक्सप्रेशन 2 के बराबर होता है, तो true के तौर पर नतीजा दिखाता है.
| एक्सप्रेशन 1 | एक्सप्रेशन 2 | नतीजा |
|---|---|---|
6 |
1 |
false |
2 |
2 |
true |
डीएसएल का उदाहरण
lightOnOffState.onOff.equals(true)
greaterThan
अगर एक्सप्रेशन 1, एक्सप्रेशन 2 से बड़ा है, तो true के तौर पर नतीजा दिखाता है.
| एक्सप्रेशन 1 | एक्सप्रेशन 2 | नतीजा |
|---|---|---|
6 |
1 |
true |
1 |
6 |
false |
डीएसएल का उदाहरण
// 1555 = 15 degrees C ~ 60 degrees F
temperatureMeasurement.measuredValue.greaterThan(1555)
greaterThanOrEquals
अगर एक्सप्रेशन 1, एक्सप्रेशन 2 से बड़ा या उसके बराबर है, तो true के तौर पर नतीजा दिखाता है.
| एक्सप्रेशन 1 | एक्सप्रेशन 2 | नतीजा |
|---|---|---|
8 |
6 |
true |
6 |
6 |
true |
1 |
6 |
false |
डीएसएल का उदाहरण
starterNode.measuredValue.greaterThanOrEquals(50)
lessThan
अगर एक्सप्रेशन 1, एक्सप्रेशन 2 से छोटा है, तो true वैल्यू मिलती है.
| एक्सप्रेशन 1 | एक्सप्रेशन 2 | नतीजा |
|---|---|---|
6 |
1 |
false |
1 |
6 |
true |
डीएसएल का उदाहरण
// 1555 = 15 degrees C ~ 60 degrees F
temperatureMeasurement.measuredValue.lessThan(1555)
lessThanOrEquals
अगर एक्सप्रेशन 1, एक्सप्रेशन 2 से छोटा या इसके बराबर है, तो true वैल्यू मिलती है.
| एक्सप्रेशन 1 | एक्सप्रेशन 2 | नतीजा |
|---|---|---|
8 |
6 |
false |
6 |
6 |
true |
1 |
6 |
true |
डीएसएल का उदाहरण
starterNode.measuredValue.lessThanOrEquals(50)
notEquals
जब एक्सप्रेशन 1, एक्सप्रेशन 2 के बराबर नहीं होता है, तो true के तौर पर नतीजा दिखाता है.
| एक्सप्रेशन 1 | एक्सप्रेशन 2 | नतीजा |
|---|---|---|
6 |
1 |
true |
1 |
6 |
true |
2 |
2 |
false |
डीएसएल का उदाहरण
occupancySensorStarter.occupancy.notEquals(.occupied)
अंकगणितीय ऑपरेटर
Swift में ऑटोमेशन एक्सप्रेशन बनाने के लिए, +, -, *, या / जैसे इनफ़िक्स ऑपरेटर इस्तेमाल नहीं किए जा सकते. इसके बजाय, SDK टूल से मिले ऑपरेटर इस्तेमाल करें. जैसे, Plus या
Minus.
जोड़ें
जोड़ने वाला ऑपरेटर .plus( ).
डीएसएल का उदाहरण
var totalCount = 0
...
totalCount = totalCount.plus(1)
सब्सट्रैक्ट
घटाने का ऑपरेटर .minus( ).
डीएसएल का उदाहरण
var countdown = 10
...
countdown = countdown.minus(1)
गुणा
गुणा करने वाला ऑपरेटर .multiply( ).
डीएसएल का उदाहरण
val millis = seconds.multiply(1000)
विभाजन करें
डिवीज़न ऑपरेटर .divide( ).
डीएसएल का उदाहरण
val rpm = revolutions.divide(minutes)
तार्किक ऑपरेटर
और
यह दो एक्सप्रेशन को लॉजिकल AND एक्सप्रेशन में जोड़ता है. साथ ही, दोनों एक्सप्रेशन के true होने पर, true के तौर पर आकलन करता है.
| एक्सप्रेशन 1 | एक्सप्रेशन 2 | नतीजा |
|---|---|---|
false |
false |
false |
true |
false |
false |
false |
true |
false |
true |
true |
true |
डीएसएल का उदाहरण
condition {
let exp1 = armState.armState
let exp2 = doorLockState.lockState
exp1.and(exp2)
}
नहीं
किसी एक्सप्रेशन की लॉजिकल वैल्यू को नेगेटिव बनाता है.
| एक्सप्रेशन | नतीजा |
|---|---|
true |
false |
false |
true |
डीएसएल का उदाहरण
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 |
डीएसएल का उदाहरण
condition {
let exp1 = doorLockState.lockState.equals(.unlocked)
let exp2 = contactSensorState.stateValue.equals(false)
exp1.or(exp2)
}