iOS DSL অপারেটর রেফারেন্স

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