شما می توانید منطق شرطی را در صحنه ها با استفاده از مقادیر اشیاء مدل Data انجام دهید. بخش های زیر نحو معتبر برای شرایط را شرح می دهند.
عملگرهای منطقی
اپراتور | توضیحات |
---|---|
&& | منطقی و. عبارات درونی به صورت تکراری ارزیابی میشوند و اگر هر عبارتی نادرست ارزیابی شود، ارزیابی کوتاه میشود. | || | منطقی OR. عبارات درونی به صورت تکراری ارزیابی می شوند و اگر هر عبارتی درست ارزیابی شود، ارزیابی کوتاه می شود. |
! | منطقی نه. ارزیابی بیان درونی نفی می شود |
عملگرهای عددی و رشته ای
عملگرهای عددی و رشته ای زیر پشتیبانی می شوند:
اپراتور | توضیحات |
---|---|
+ | اعداد یا الحاق رشته ها را اضافه کنید |
- | اعداد را کم کنید |
* | اعداد را ضرب کن |
/ | اعداد را تقسیم کنید |
بولین ها
بولین های ثابت زیر پشتیبانی می شوند:
ثابت | توضیحات |
---|---|
true | باید با حروف کوچک باشد |
false | باید با حروف کوچک باشد |
!false | به true ارزیابی می کند. باید با حروف کوچک باشد. |
عملگرهای مقایسه
عملگرهای مقایسه زیر ارائه شده است:
اپراتور | توضیحات |
---|---|
== | برابر است |
!= | برابر نیست |
< | کمتر از |
<= | کمتر از مساوی |
> | بزرگتر از |
>= | بزرگتر از مساوی |
فهرست ها و نقشه ها
لیستی به نام session.params.myList
داده می شود:
نحو | توضیحات |
---|---|
x in session.params.myList | اگر مقدار x در session.params.myList باشد true برمی گرداند |
myList[x] | مقدار شاخص x از myList را برمیگرداند |
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