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

অপারেটরগুলি আপনাকে নির্দিষ্ট মানের সাথে বৈশিষ্ট্যের বৈশিষ্ট্যের মান পরীক্ষা করতে, একে অপরের সাথে তুলনা করতে এবং 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)
}