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)
}