অপারেটর ব্যবহার করে আপনি ট্রেইট অ্যাট্রিবিউটের মান নির্দিষ্ট মানের সাথে মিলিয়ে দেখতে পারেন, সেগুলোকে একে অপরের সাথে তুলনা করতে পারেন এবং 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)
}