ऑपरेटर की मदद से, किसी एट्रिब्यूट की वैल्यू को खास वैल्यू के हिसाब से चेक किया जा सकता है. साथ ही, उनकी तुलना की जा सकती है और condition नोड में इस्तेमाल किए गए एक्सप्रेशन को जोड़ा जा सकता है.
ऑपरेटर, यहां दिए गए import स्टेटमेंट के ज़रिए उपलब्ध कराए जाते हैं:
import GoogleHomeSDK
तुलना करने वाले ऑपरेटर
बीच में
अगर एक्सप्रेशन 1 की वैल्यू, एक्सप्रेशन 2 और एक्सप्रेशन 3 के बीच में है, तो true के तौर पर नतीजा दिखाता है. इसमें एक्सप्रेशन 2 और एक्सप्रेशन 3 की वैल्यू भी शामिल होती है. एक्सप्रेशन को उनके डेटा टाइप के हिसाब से अलग-अलग रैंक किया जाता है. नंबर और स्ट्रिंग जैसे सामान्य डेटा टाइप को 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 में, ऑटोमेशन एक्सप्रेशन बनाने के लिए, इनफ़िक्स ऑपरेटर (जैसे, +, -, *, या /) इस्तेमाल नहीं किए जा सकते. इसके बजाय, एसडीके से मिले ऑपरेटर इस्तेमाल करें. जैसे, 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)
}