অপারেটরগুলি আপনাকে নির্দিষ্ট মানের বিপরীতে বৈশিষ্ট্য বৈশিষ্ট্যের মান পরীক্ষা করতে, তাদের একে অপরের সাথে তুলনা করতে এবং condition
নোডে ব্যবহৃত এক্সপ্রেশনগুলিকে একত্রিত করার অনুমতি দেয়।
অপারেটর নিম্নলিখিত import
বিবৃতি মাধ্যমে উপলব্ধ করা হয়:
import com.google.home.automation.and
import com.google.home.automation.between
import com.google.home.automation.contains
import com.google.home.automation.equals
import com.google.home.automation.greaterThan
import com.google.home.automation.greaterThanOrEquals
import com.google.home.automation.lessThan
import com.google.home.automation.not
import com.google.home.automation.notEquals
import com.google.home.automation.or
তুলনা অপারেটর
মধ্যে
এক্সপ্রেশন 1 এর মান যখন এক্সপ্রেশন 2 এবং এক্সপ্রেশন 3 (অন্তর্ভুক্ত) এর মধ্যে থাকে তখন true
মূল্যায়ন করে। এক্সপ্রেশন তাদের ডেটা প্রকারের উপর নির্ভর করে ভিন্নভাবে র্যাঙ্ক করা হয়। সাধারণ ডেটার ধরন যেমন নম্বর এবং স্ট্রিংগুলিকে কোটলিনে যেভাবে র্যাঙ্ক করা হয়।
অভিব্যক্তি ঘ | অভিব্যক্তি 2 | অভিব্যক্তি 3 | ফলাফল |
---|---|---|---|
6 | 1 | 3 | false |
2 | 1 | 3 | true |
ডিএসএল উদাহরণ
val time = stateReader<_>(structure, Time)
condition() {
expression = time.currentTime
.between(
time.sunsetTime,
time.sunriseTime)
}
সমান
যখন এক্সপ্রেশন 1 এক্সপ্রেশন 2 এর সমান হয় তখন true
মূল্যায়ন করে।
অভিব্যক্তি ঘ | অভিব্যক্তি 2 | ফলাফল |
---|---|---|
6 | 1 | false |
2 | 2 | true |
ডিএসএল উদাহরণ
washer.operationalState equals STOPPED
এর চেয়ে বড়
যখন এক্সপ্রেশন 1 এক্সপ্রেশন 2 থেকে বড় হয় তখন true
মূল্যায়ন করে।
অভিব্যক্তি ঘ | অভিব্যক্তি 2 | ফলাফল |
---|---|---|
6 | 1 | true |
1 | 6 | false |
ডিএসএল উদাহরণ
( blindsPosition.currentPositionLift greaterThan 0u )
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 |
ডিএসএল উদাহরণ
time.currentTime lessThan LocalTime.of(22,0,0,0)
lessThanOrEquals
যখন এক্সপ্রেশন 1 এক্সপ্রেশন 2 এর থেকে কম বা সমান হয় তখন true
মূল্যায়ন করে।
অভিব্যক্তি ঘ | অভিব্যক্তি 2 | ফলাফল |
---|---|---|
8 | 6 | false |
6 | 6 | true |
1 | 6 | true |
ডিএসএল উদাহরণ
( starterNode.measuredValue lessThanOrEquals 25 )
সমান
যখন এক্সপ্রেশন 1 এক্সপ্রেশন 2 এর সমান না হয় তখন true
মূল্যায়ন করে।
অভিব্যক্তি ঘ | অভিব্যক্তি 2 | ফলাফল |
---|---|---|
6 | 1 | true |
1 | 6 | true |
2 | 2 | false |
ডিএসএল উদাহরণ
occupancyStateChange.occupied notEquals 0
পাটিগণিত অপারেটর
যোগ করুন
সংযোজন অপারেটর ( +
)।
ডিএসএল উদাহরণ
var totalCount = 0
...
totalCount = totalCount + 1
বিয়োগ করুন
বিয়োগ অপারেটর ( -
)।
ডিএসএল উদাহরণ
var countdown = 10
...
countdown = countdown - 1
গুন করুন
গুন অপারেটর ( *
)।
ডিএসএল উদাহরণ
val millis = seconds * 1000
ভাগ করুন
বিভাগ অপারেটর ( /
)।
ডিএসএল উদাহরণ
val rpm = revolutions / minutes
লজিক্যাল অপারেটর
এবং
একটি যৌক্তিক এবং অভিব্যক্তিতে দুটি অভিব্যক্তিকে একত্রিত করে, উভয় অভিব্যক্তি true
হলে true
মূল্যায়ন করে।
অভিব্যক্তি ঘ | অভিব্যক্তি 2 | ফলাফল |
---|---|---|
false | false | false |
true | false | false |
false | true | false |
true | true | true |
ডিএসএল উদাহরণ
((device.occupied notEquals 0) and
time.currentTime.between(time.sunriseTime, time.sunsetTime))
না
একটি অভিব্যক্তির যৌক্তিক মান অস্বীকার করে।
অভিব্যক্তি | ফলাফল |
---|---|
true | false |
false | true |
ডিএসএল উদাহরণ
time.currentTime not (between(time.sunriseTime, time.sunsetTime))
বা
একটি যৌক্তিক বা অভিব্যক্তিতে দুটি অভিব্যক্তিকে একত্রিত করে।
অভিব্যক্তি ঘ | অভিব্যক্তি 2 | ফলাফল |
---|---|---|
false | false | false |
true | false | true |
false | true | true |
ডিএসএল উদাহরণ
(time.currentTime equals LocalTime.of(10,0,0,0)) or
(time.currentTime equals LocalTime.of(22,0,0,0))