অপারেটরগুলি আপনাকে নির্দিষ্ট মানের বিপরীতে বৈশিষ্ট্য বৈশিষ্ট্যের মান পরীক্ষা করতে, তাদের একে অপরের সাথে তুলনা করতে এবং condition
নোডে ব্যবহৃত এক্সপ্রেশনগুলিকে একত্রিত করার অনুমতি দেয়।
অপারেটর নিম্নলিখিত import
বিবৃতি মাধ্যমে উপলব্ধ করা হয়:
import GoogleHomeSDK
তুলনা অপারেটর
মধ্যে
এক্সপ্রেশন 1 এর মান যখন এক্সপ্রেশন 2 এবং এক্সপ্রেশন 3 (অন্তর্ভুক্ত) এর মধ্যে থাকে তখন true
মূল্যায়ন করে। এক্সপ্রেশন তাদের ডেটা প্রকারের উপর নির্ভর করে ভিন্নভাবে র্যাঙ্ক করা হয়। সাধারণ ডেটা টাইপ যেমন সংখ্যা এবং স্ট্রিংগুলিকে সুইফটের মতোই র্যাঙ্ক করা হয়।
অভিব্যক্তি ঘ | অভিব্যক্তি 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
মূল্যায়ন করে।
অভিব্যক্তি ঘ | অভিব্যক্তি 2 | ফলাফল |
---|---|---|
6 | 1 | false |
2 | 2 | true |
ডিএসএল উদাহরণ
lightOnOffState.onOff.equals(true)
এর চেয়ে বড়
যখন এক্সপ্রেশন 1 এক্সপ্রেশন 2 থেকে বড় হয় তখন true
মূল্যায়ন করে।
অভিব্যক্তি ঘ | অভিব্যক্তি 2 | ফলাফল |
---|---|---|
6 | 1 | true |
1 | 6 | false |
ডিএসএল উদাহরণ
// 1555 = 15 degrees C ~ 60 degrees F
temperatureMeasurement.measuredValue.greaterThan(1555)
greaterThanOrEquals
যখন এক্সপ্রেশন 1 এক্সপ্রেশন 2 এর থেকে বড় বা সমান হয় তখন true
মূল্যায়ন করে।
অভিব্যক্তি ঘ | অভিব্যক্তি 2 | ফলাফল |
---|---|---|
8 | 6 | true |
6 | 6 | true |
1 | 6 | false |
ডিএসএল উদাহরণ
starterNode.measuredValue.greaterThanOrEquals(50)
কম
যখন এক্সপ্রেশন 1 এক্সপ্রেশন 2 থেকে কম হয় তখন true
মূল্যায়ন করে।
অভিব্যক্তি ঘ | অভিব্যক্তি 2 | ফলাফল |
---|---|---|
6 | 1 | false |
1 | 6 | true |
ডিএসএল উদাহরণ
// 1555 = 15 degrees C ~ 60 degrees F
temperatureMeasurement.measuredValue.lessThan(1555)
lessThanOrEquals
যখন এক্সপ্রেশন 1 এক্সপ্রেশন 2 এর থেকে কম বা সমান হয় তখন true
মূল্যায়ন করে।
অভিব্যক্তি ঘ | অভিব্যক্তি 2 | ফলাফল |
---|---|---|
8 | 6 | false |
6 | 6 | true |
1 | 6 | true |
ডিএসএল উদাহরণ
starterNode.measuredValue.lessThanOrEquals(50)
সমান
যখন এক্সপ্রেশন 1 এক্সপ্রেশন 2 এর সমান না হয় তখন true
মূল্যায়ন করে।
অভিব্যক্তি ঘ | অভিব্যক্তি 2 | ফলাফল |
---|---|---|
6 | 1 | true |
1 | 6 | true |
2 | 2 | false |
ডিএসএল উদাহরণ
occupancySensorStarter.occupancy.notEquals(.occupied)
পাটিগণিত অপারেটর
ইনফিক্স অপারেটর যেমন +, -, *, বা / সুইফটে অটোমেশন এক্সপ্রেশন তৈরির জন্য সমর্থিত নয়। পরিবর্তে, 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)
লজিক্যাল অপারেটর
এবং
একটি যৌক্তিক এবং অভিব্যক্তিতে দুটি অভিব্যক্তিকে একত্রিত করে, উভয় অভিব্যক্তি true
হলে true
মূল্যায়ন করে।
অভিব্যক্তি ঘ | অভিব্যক্তি 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())
}
বা
একটি যৌক্তিক বা অভিব্যক্তিতে দুটি অভিব্যক্তিকে একত্রিত করে।
অভিব্যক্তি ঘ | অভিব্যক্তি 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)
}