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