অপারেটর আপনাকে নির্দিষ্ট ভ্যালুর সাথে ট্রেইট অ্যাট্রিবিউটের ভ্যালু চেক করতে, একে অপরের সাথে তুলনা করতে এবং condition নোডে ব্যবহৃত এক্সপ্রেশন একত্রিত করতে দেয়।
নিম্নলিখিত import স্টেটমেন্টের মাধ্যমে অপারেটর উপলভ্য করা হয়:
import GoogleHomeSDK
তুলনাকারী অপারেটর
এর মধ্যে
এক্সপ্রেশন ১-এর ভ্যালু এক্সপ্রেশন ২ ও এক্সপ্রেশন ৩-এর (অন্তর্ভুক্ত) মধ্যে হলে, true হিসেবে মূল্যায়ন করে। ডেটার ধরনের উপর নির্ভর করে এক্সপ্রেশনকে
আলাদাভাবে র্যাঙ্ক করা হয়। সংখ্যা এবং স্ট্রিংয়ের মতো সাধারণ ডেটার ধরনগুলি Swift-এ যেভাবে র্যাঙ্ক করা হয়,
সেভাবেই র্যাঙ্ক করা হয়।
| এক্সপ্রেশন ১ | এক্সপ্রেশন ২ | Expression 3 | ফলাফল |
|---|---|---|---|
6 |
1 |
3 |
false |
2 |
1 |
3 |
true |
DSL example
let time = stateReader(structure, Google.TimeTrait)
condition {
time.currentTime
.between(
time.sunsetTime,
time.sunriseTime)
}
সমান
এক্সপ্রেশন ১ ও এক্সপ্রেশন ২ সমান হলে true হিসেবে মূল্যায়ন করা হয়।
| এক্সপ্রেশন ১ | এক্সপ্রেশন ২ | ফলাফল |
|---|---|---|
6 |
1 |
false |
2 |
2 |
true |
DSL example
lightOnOffState.onOff.equals(true)
greaterThan
এক্সপ্রেশন ১ এক্সপ্রেশন ২-এর থেকে বড় হলে true হিসেবে মূল্যায়ন করে।
| এক্সপ্রেশন ১ | এক্সপ্রেশন ২ | ফলাফল |
|---|---|---|
6 |
1 |
true |
1 |
6 |
false |
DSL example
// 1555 = 15 degrees C ~ 60 degrees F
temperatureMeasurement.measuredValue.greaterThan(1555)
greaterThanOrEquals
এক্সপ্রেশন ১, এক্সপ্রেশন ২-এর থেকে বড় বা সমান হলে true মূল্যায়ন করে।
| এক্সপ্রেশন ১ | এক্সপ্রেশন ২ | ফলাফল |
|---|---|---|
8 |
6 |
true |
6 |
6 |
true |
1 |
6 |
false |
DSL example
starterNode.measuredValue.greaterThanOrEquals(50)
lessThan
এক্সপ্রেশন ১ এক্সপ্রেশন ২-এর থেকে কম হলে true হিসেবে মূল্যায়ন করে।
| এক্সপ্রেশন ১ | এক্সপ্রেশন ২ | ফলাফল |
|---|---|---|
6 |
1 |
false |
1 |
6 |
true |
DSL example
// 1555 = 15 degrees C ~ 60 degrees F
temperatureMeasurement.measuredValue.lessThan(1555)
lessThanOrEquals
এক্সপ্রেশন ১, এক্সপ্রেশন ২-এর থেকে কম বা সমান হলে true হিসেবে মূল্যায়ন করা হয়।
| এক্সপ্রেশন ১ | এক্সপ্রেশন ২ | ফলাফল |
|---|---|---|
8 |
6 |
false |
6 |
6 |
true |
1 |
6 |
true |
DSL example
starterNode.measuredValue.lessThanOrEquals(50)
notEquals
এক্সপ্রেশন ১, এক্সপ্রেশন ২-এর সমান না হলে true হিসেবে মূল্যায়ন করে।
| এক্সপ্রেশন ১ | এক্সপ্রেশন ২ | ফলাফল |
|---|---|---|
6 |
1 |
true |
1 |
6 |
true |
2 |
2 |
false |
DSL example
occupancySensorStarter.occupancy.notEquals(.occupied)
পাটিগণিত অপারেটর
Swift-এ অটোমেশন এক্সপ্রেশন তৈরি করার জন্য +, -, *, বা /-এর মতো ইনফিক্স অপারেটর কাজ করে না। পরিবর্তে, SDK-এর মাধ্যমে প্রদান করা অপারেটর ব্যবহার করুন, যেমন
Plus অথবা
Minus।
যোগ করুন
যোগ করার অপারেটর .plus( )।
DSL example
var totalCount = 0
...
totalCount = totalCount.plus(1)
বিয়োগ
বিয়োগ অপারেটর .minus( )।
DSL example
var countdown = 10
...
countdown = countdown.minus(1)
গুণ
গুণ করার অপারেটর .multiply( )।
DSL example
val millis = seconds.multiply(1000)
ভাগ
ভাগ করার অপারেটর .divide( )।
DSL example
val rpm = revolutions.divide(minutes)
লজিক্যাল অপারেটর
এবং
দুটি এক্সপ্রেশনকে লজিক্যাল AND এক্সপ্রেশনে একত্রিত করে, দুটি এক্সপ্রেশনই true হলে
true হিসেবে মূল্যায়ন করে।
| এক্সপ্রেশন ১ | এক্সপ্রেশন ২ | ফলাফল |
|---|---|---|
false |
false |
false |
true |
false |
false |
false |
true |
false |
true |
true |
true |
DSL example
condition {
let exp1 = armState.armState
let exp2 = doorLockState.lockState
exp1.and(exp2)
}
সম্ভব নয়
কোনও এক্সপ্রেশনের লজিক্যাল ভ্যালু নেগেট করে।
| এক্সপ্রেশন | ফলাফল |
|---|---|
true |
false |
false |
true |
DSL example
condition {
let exp1 = armState.armState
let exp2 = doorLockState.lockState
exp1.and(exp2.not())
}
অথবা
দুটি এক্সপ্রেশনকে একটি লজিক্যাল OR এক্সপ্রেশনে একত্রিত করে।
| এক্সপ্রেশন ১ | এক্সপ্রেশন ২ | ফলাফল |
|---|---|---|
false |
false |
false |
true |
false |
true |
false |
true |
true |
DSL example
condition {
let exp1 = doorLockState.lockState.equals(.unlocked)
let exp2 = contactSensorState.stateValue.equals(false)
exp1.or(exp2)
}