অপারেটরগুলি আপনাকে নির্দিষ্ট মানের সাথে বৈশিষ্ট্যের বৈশিষ্ট্যের মান পরীক্ষা করতে, একে অপরের সাথে তুলনা করতে এবং condition নোডে ব্যবহৃত এক্সপ্রেশনগুলিকে একত্রিত করতে দেয়।
অপারেটরদের নিম্নলিখিত import বিবৃতির মাধ্যমে উপলব্ধ করা হয়:
import GoogleHomeSDK
তুলনা অপারেটর
মধ্যে
যখন এক্সপ্রেশন ১ এর মান এক্সপ্রেশন ২ এবং এক্সপ্রেশন ৩ (সমেত) এর মধ্যে থাকে তখন এটি true হিসেবে মূল্যায়ন করা হয়। এক্সপ্রেশনগুলিকে তাদের ডেটা ধরণের উপর নির্ভর করে ভিন্নভাবে র্যাঙ্ক করা হয়। সংখ্যা এবং স্ট্রিং এর মতো সাধারণ ডেটা টাইপগুলিকে সুইফটে একইভাবে র্যাঙ্ক করা হয়।
| অভিব্যক্তি ১ | অভিব্যক্তি ২ | অভিব্যক্তি ৩ | ফলাফল |
|---|---|---|---|
6 | 1 | 3 | false |
2 | 1 | 3 | true |
ডিএসএল উদাহরণ
let time = stateReader(structure, Google.TimeTrait)
condition {
time.currentTime
.between(
time.sunsetTime,
time.sunriseTime)
}
সমান
যখন রাশি ১, রাশি ২ এর সমান হয় তখন true হিসেবে মূল্যায়ন করা হয়।
| অভিব্যক্তি ১ | অভিব্যক্তি ২ | ফলাফল |
|---|---|---|
6 | 1 | false |
2 | 2 | true |
ডিএসএল উদাহরণ
lightOnOffState.onOff.equals(true)
এর চেয়ে বড়
যখন রাশি ১, রাশি ২ এর চেয়ে বড় হয় তখন true হিসেবে মূল্যায়ন করা হয়।
| অভিব্যক্তি ১ | অভিব্যক্তি ২ | ফলাফল |
|---|---|---|
6 | 1 | true |
1 | 6 | false |
ডিএসএল উদাহরণ
// 1555 = 15 degrees C ~ 60 degrees F
temperatureMeasurement.measuredValue.greaterThan(1555)
বৃহত্তর-অর-সমান
যখন রাশি ১, রাশি ২ এর চেয়ে বড় বা সমান হয়, তখন true হিসেবে মূল্যায়ন করা হয়।
| অভিব্যক্তি ১ | অভিব্যক্তি ২ | ফলাফল |
|---|---|---|
8 | 6 | true |
6 | 6 | true |
1 | 6 | false |
ডিএসএল উদাহরণ
starterNode.measuredValue.greaterThanOrEquals(50)
কম
যখন রাশি ১, রাশি ২ এর চেয়ে ছোট হয়, তখন true হিসেবে মূল্যায়ন করা হয়।
| অভিব্যক্তি ১ | অভিব্যক্তি ২ | ফলাফল |
|---|---|---|
6 | 1 | false |
1 | 6 | true |
ডিএসএল উদাহরণ
// 1555 = 15 degrees C ~ 60 degrees F
temperatureMeasurement.measuredValue.lessThan(1555)
সমানের চেয়ে কম
যখন রাশি ১, রাশি ২ এর চেয়ে কম বা সমান হয়, তখন true হিসেবে মূল্যায়ন করা হয়।
| অভিব্যক্তি ১ | অভিব্যক্তি ২ | ফলাফল |
|---|---|---|
8 | 6 | false |
6 | 6 | true |
1 | 6 | true |
ডিএসএল উদাহরণ
starterNode.measuredValue.lessThanOrEquals(50)
সমান নয়
যখন রাশি ১, রাশি ২ এর সমান না হয় তখন true হিসেবে মূল্যায়ন করা হয়।
| অভিব্যক্তি ১ | অভিব্যক্তি ২ | ফলাফল |
|---|---|---|
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)
লজিক্যাল অপারেটর
এবং
একটি লজিক্যাল AND এক্সপ্রেশনে দুটি এক্সপ্রেশন একত্রিত করে, যখন উভয় এক্সপ্রেশন true হয় তখন true হিসাবে মূল্যায়ন করে।
| অভিব্যক্তি ১ | অভিব্যক্তি ২ | ফলাফল |
|---|---|---|
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 রাশিতে একত্রিত করে।
| অভিব্যক্তি ১ | অভিব্যক্তি ২ | ফলাফল |
|---|---|---|
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)
}