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

অপারেটরগুলি আপনাকে নির্দিষ্ট মানের বিপরীতে বৈশিষ্ট্য বৈশিষ্ট্যের মান পরীক্ষা করতে, তাদের একে অপরের সাথে তুলনা করতে এবং condition নোডে ব্যবহৃত এক্সপ্রেশনগুলিকে একত্রিত করার অনুমতি দেয়।

অপারেটর নিম্নলিখিত import বিবৃতি মাধ্যমে উপলব্ধ করা হয়:

import GoogleHomeSDK

তুলনা অপারেটর

মধ্যে

এক্সপ্রেশন 1 এর মান যখন এক্সপ্রেশন 2 এবং এক্সপ্রেশন 3 (অন্তর্ভুক্ত) এর মধ্যে থাকে তখন true মূল্যায়ন করে। এক্সপ্রেশন তাদের ডেটা প্রকারের উপর নির্ভর করে ভিন্নভাবে র‌্যাঙ্ক করা হয়। সাধারণ ডেটা টাইপ যেমন সংখ্যা এবং স্ট্রিংগুলিকে সুইফটের মতোই র‌্যাঙ্ক করা হয়।

উদাহরণ
অভিব্যক্তি ঘ অভিব্যক্তি 2 অভিব্যক্তি 3 ফলাফল
6 1 3 false
2 1 3 true

ডিএসএল উদাহরণ

let time = stateReader(structure, Google.TimeTrait)
condition {
  time.currentTime
     .between(
      time.sunsetTime,
      time.sunriseTime)
}

সমান

যখন এক্সপ্রেশন 1 এক্সপ্রেশন 2 এর সমান হয় তখন true মূল্যায়ন করে।

উদাহরণ
অভিব্যক্তি ঘ অভিব্যক্তি 2 ফলাফল
6 1 false
2 2 true

ডিএসএল উদাহরণ

lightOnOffState.onOff.equals(true)

এর চেয়ে বড়

যখন এক্সপ্রেশন 1 এক্সপ্রেশন 2 থেকে বড় হয় তখন true মূল্যায়ন করে।

উদাহরণ
অভিব্যক্তি ঘ অভিব্যক্তি 2 ফলাফল
6 1 true
1 6 false

ডিএসএল উদাহরণ

// 1555 = 15 degrees C ~ 60 degrees F
temperatureMeasurement.measuredValue.greaterThan(1555)

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

ডিএসএল উদাহরণ

// 1555 = 15 degrees C ~ 60 degrees F
temperatureMeasurement.measuredValue.lessThan(1555)

lessThanOrEquals

যখন এক্সপ্রেশন 1 এক্সপ্রেশন 2 এর থেকে কম বা সমান হয় তখন true মূল্যায়ন করে।

উদাহরণ
অভিব্যক্তি ঘ অভিব্যক্তি 2 ফলাফল
8 6 false
6 6 true
1 6 true

ডিএসএল উদাহরণ

starterNode.measuredValue.lessThanOrEquals(50)

সমান

যখন এক্সপ্রেশন 1 এক্সপ্রেশন 2 এর সমান না হয় তখন true মূল্যায়ন করে।

উদাহরণ
অভিব্যক্তি ঘ অভিব্যক্তি 2 ফলাফল
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)

লজিক্যাল অপারেটর

এবং

একটি যৌক্তিক এবং অভিব্যক্তিতে দুটি অভিব্যক্তিকে একত্রিত করে, উভয় অভিব্যক্তি true হলে true মূল্যায়ন করে।

উদাহরণ
অভিব্যক্তি ঘ অভিব্যক্তি 2 ফলাফল
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())
}

বা

একটি যৌক্তিক বা অভিব্যক্তিতে দুটি অভিব্যক্তিকে একত্রিত করে।

উদাহরণ
অভিব্যক্তি ঘ অভিব্যক্তি 2 ফলাফল
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)
}