Koşullar

Sahnelerde koşullu mantık yürütme işlemini Veri modeli nesneleri. Aşağıdaki bölümlerde aşağıdaki bölümlerde açıklanmıştır: ve koşullar için geçerli söz dizimini belirtmelidir.

Mantıksal operatörler

Operatör Açıklama
&& Mantıksal VE. İç ifadeler yinelemeli olarak değerlendirilir ve herhangi bir ifade yanlış olarak değerlendirilirse değerlendirmesi kısa devreye girer.
|| Mantıksal VEYA. İç ifadeler yinelemeli olarak değerlendirilir ve Herhangi bir ifade doğru olarak değerlendirilirse değerlendirme kısa devre
! Mantıksal DEĞİL. İç ifadenin değerlendirmesi reddedilir

Sayısal operatörler ve dize operatörleri

Aşağıdaki sayısal ve dize operatörleri desteklenir:

Operatör Açıklama
+ Sayı veya dize birleştirme
- Sayıları çıkarma
* Sayıları çarpma
/ Sayıları bölme

Boole'lar

Aşağıdaki sabit boole değerleri desteklenir:

Sabit Açıklama
true Küçük harf olmalıdır
false Küçük harf olmalıdır
!false true olarak değerlendirilir. Küçük harf olmalıdır.

Karşılaştırma operatörleri

Aşağıdaki karşılaştırma operatörleri sağlanır:

Operatör Açıklama
== Şuna eşittir:
!= Eşit değil
< Küçüktür
<= Küçük veya eşittir
> Şundan büyük:
>= Büyük veya eşittir

Listeler ve haritalar

session.params.myList adlı bir liste verildiğinde:

Söz dizimi Açıklama
x in session.params.myList x değeri şunun içindeyse true değerini döndürür: session.params.myList
myList[x] myList dizinden x. sıradaki değeri döndürür
size(session.params.myList) Bir listenin boyutunu döndürür

session.params.myMap adlı bir harita verildiğinde:

Söz dizimi Açıklama
session.params.myMap == {"one": 1, "two":2} Haritalar eşitse true değerini döndürür
session['params']['myMap']['one'] Belirtilen anahtarla birlikte değeri döndürür
size(session.params.myMap) Harita boyutunu döndürür

Veri modeli

Sahne koşullarında aşağıdaki nesneler kullanılabilir:

Söz dizimi Açıklama
intent Eşleşen amaç parametresi verileri
scene Alan doldurma verileri
session Oturum depolama verileri
user Kullanıcı depolama alanı verileri
home Ev depolama alanı verileri
device Cihaz yeteneği ve konum verileri
canvas Tuval durumu verileri
resources Yerelleştirilmiş proje kaynakları (ses, görüntüler, dizeler vb.) verileri

Aşağıda, tam veri modelinin JSON'daki örnek bir snippet'i verilmiştir:

{
  "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>"
    }
  }
}

Kullanım referansı

Aşağıdaki söz dizimi örneklerinde, session.params nesneyle:

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

Aşağıdaki koşullu işlemleri gerçekleştirebilirsiniz:

// 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