শর্তাবলী

আপনি ডেটা মডেল অবজেক্ট থেকে মান ব্যবহার করে দৃশ্যে শর্তসাপেক্ষ যুক্তি চালাতে পারেন। নিম্নলিখিত বিভাগগুলি শর্তগুলির জন্য বৈধ সিনট্যাক্স বর্ণনা করে৷

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

অপারেটর বর্ণনা
&& যৌক্তিক এবং. অভ্যন্তরীণ অভিব্যক্তিগুলি পুনরাবৃত্তভাবে মূল্যায়ন করা হয়, এবং মূল্যায়নটি শর্ট সার্কিট করা হয় যদি কোনো অভিব্যক্তি মিথ্যা মূল্যায়ন করে।
|| যৌক্তিক বা অভ্যন্তরীণ অভিব্যক্তিগুলি পুনরাবৃত্তভাবে মূল্যায়ন করা হয়, এবং মূল্যায়নটি শর্ট সার্কিট করা হয় যদি কোনো অভিব্যক্তি সত্যে মূল্যায়ন করে
! যৌক্তিক নয়। অভ্যন্তরীণ অভিব্যক্তির মূল্যায়ন অস্বীকার করা হয়

সংখ্যাসূচক এবং স্ট্রিং অপারেটর

নিম্নলিখিত সংখ্যাসূচক এবং স্ট্রিং অপারেটর সমর্থিত:

অপারেটর বর্ণনা
+ সংখ্যা বা স্ট্রিং সংযোজন যোগ করুন
- সংখ্যা বিয়োগ করুন
* সংখ্যা গুণ করুন
/ সংখ্যা ভাগ করুন

বুলিয়ানস

নিম্নলিখিত ধ্রুবক বুলিয়ান সমর্থিত:

ধ্রুবক বর্ণনা
true ছোট হাতের হতে হবে
false ছোট হাতের হতে হবে
!false true মূল্যায়ন করে। ছোট হাতের হতে হবে।

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

নিম্নলিখিত তুলনা অপারেটর প্রদান করা হয়:

অপারেটর বর্ণনা
== সমান
!= সমান নয়
< থেকে কম
<= সমানের চেয়ে কম
> এর চেয়ে বড়
>= সমানের চেয়ে বড়

তালিকা এবং মানচিত্র

session.params.myList নামে একটি তালিকা দেওয়া হয়েছে:

সিনট্যাক্স বর্ণনা
x in session.params.myList যদি x মান session.params.myList এ থাকে তাহলে সত্য দেখায়
myList[x] myList এর সূচী x এ মান প্রদান করে
size(session.params.myList) একটি তালিকার আকার প্রদান করে

session.params.myMap নামে একটি মানচিত্র দেওয়া হয়েছে:

সিনট্যাক্স বর্ণনা
session.params.myMap == {"one": 1, "two":2} মানচিত্র সমান হলে true প্রদান করে
session['params']['myMap']['one'] নির্দিষ্ট কী দিয়ে মান প্রদান করে
size(session.params.myMap) মানচিত্রের আকার প্রদান করে

ডেটা মডেল

নিম্নলিখিত বস্তু দৃশ্য অবস্থার মধ্যে ব্যবহার করা যেতে পারে:

সিনট্যাক্স বর্ণনা
intent মিলিত অভিপ্রায় প্যারামিটার ডেটা
scene স্লট-ফিলিং ডেটা
session সেশন স্টোরেজ ডেটা
user ব্যবহারকারীর স্টোরেজ ডেটা
home হোম স্টোরেজ ডেটা
device ডিভাইসের ক্ষমতা এবং অবস্থান ডেটা
canvas ক্যানভাস স্টেট ডেটা
resources স্থানীয়কৃত প্রকল্প সম্পদ (অডিও, ছবি, স্ট্রিং, ইত্যাদি) ডেটা

JSON-এ সম্পূর্ণ ডেটা মডেলের একটি উদাহরণ স্নিপেট নিচে দেওয়া হল:

{
  "intent": {
    "params": {
      "<param_name>": {
        "original": "five people",
        "resolved": 5
      }
    }
   },
  "session": {
    "params": {
      "<session_params_key>": "<session_params_value>"
    }
  },
  "scene": {
    "slots": {
      "status": "FINAL",
      "params": {
        "<slot_name>": "<slot_value>"
      }
    }
  },
  "user": {
    "params": {
      "<user_params_key>": "<user_params_value>"
    },
    "permissions": [
      "DEVICE_PRECISE_LOCATION"
    ],
    "accountLinkingStatus": "LINKED",
    "verificationStatus": "VERIFIED",
    "lastSeenTime": {
      "seconds": 123,
      "nanos": 456
    },
    "engagement": {
      "pushNotificationIntents": [
        "intent1",
        "intent2"
      ]
    }
  },
  "home": {
    "params": {
      "<home_params_key>": "<home_params_value>"
    }
  },
  "canvas": {
    "state": {
      "<canvas_state_key>": "<canvas_state_value>"
    }
  },
  "device": {
    "capabilities": [
      "SPEECH",
      "RICH_RESPONSE",
      "LONG_FORM_AUDIO",
      "INTERACTIVE_CANVAS"
    ],
    "currentLocation": {
      "coordinates": {
        "latitude": 37.422,
        "longitude": -122.084
      },
      "postalAddress": {
        "revision": 0,
        "regionCode": "US",
        "languageCode": "en",
        "postalCode": "94043",
        "sortingCode": "",
        "administrativeArea": "California",
        "locality": "Mountain View",
        "sublocality": "",
        "addressLines": ["1600 Amphitheatre Parkway"],
        "recipients": [],
        "organization": ""
      }
    }
  },
  "resources": {
    "strings": {
      "<resource_string_key>": "<resource_string_value>"
    },
    "images": {
      "<resource_image_key>": "<resource_image_value>"
    }
  }
}

ব্যবহারের রেফারেন্স

নিম্নলিখিত সিনট্যাক্স উদাহরণগুলি অনুমান করে যে আপনি session.params অবজেক্টের সাথে কাজ করছেন:

session.params = {
  "flag": true,
  "count": 10,
  "name": "john smith",
  "myList": [1, 2, 3],
  "myMap": {"one": 1, "two":2}
}

আপনি নিম্নলিখিত শর্তসাপেক্ষ ক্রিয়াকলাপগুলি সম্পাদন করতে পারেন:

// numbers and boolean logic
session.params.count > 0 && session.params.count < 100    // AND
session.params.count == 0 || session.params.count != 5    // OR
!(session.params.count <= 0)         // NOT

// booleans
!false                      // true constant
session.params.flag         // boolean variable
session.params.flag == true // explicitly compare with true constant

// strings
session.params.name == "john smith"  // double quotes supported
session.params.name == 'john smith'  // single quotes supported
session.params.name.contains("john") // substring
session.params.name + "!!!" == "john smith!!!" // string concatenation
session.params.name < "abc"          // compares lexicographically
size(session.params.name) == 10      // length of string

// lists
1 in session.params.myList        // "contains in list" operator
session.params.myList[0] == 1     // "index into list" operator
size(session.params.myList) == 3  // returns number of elements in the list

// maps
session.params.myMap == {"one": 1, "two":2} // compare map with json
session['params']['myMap']['one'] == 1      // index using square brackets
size(session.params.myMap) == 2             // number of entries in the map