ऑपरेटर की मदद से, किसी खास वैल्यू के हिसाब से, ट्रेट एट्रिब्यूट की वैल्यू की जांच की जा सकती है. साथ ही, उनकी तुलना एक-दूसरे से की जा सकती है. इसके अलावा, 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)
}