簡體   English   中英

hy中的“if x in y”等價於什么?

[英]What is the equivalent of `if x in y` in hy?

我似乎無法在 hy 中找到一個內置的(或等效的)讓我在不處理異常的情況下檢查某些東西

我想寫這樣的東西:

(setv foo {:a 1 :b 2})
(if (in foo :c) 
    (foo)  
  (boo))

(:c foo)(get foo:c)都導致異常

Hy具有與所有Python運算符相同的功能。 Hy對所有運算符都使用前綴表示法,但不會更改操作數在后綴表示法中的順序。 所以(- 10 8)在HY為2 ,相同10 - 8在Python。

這同樣適用於in運算符。 (in :c foo)就像(in :c foo) HyKeyword('c') in foo 可以將其視為in(:c, foo) ,而不是“ In foo,:c?”。

而不是 (get foo:c) 使用 (.get foo:c) 並比較 None 如果 c 關鍵字不存在。

(setv foo {:a 1 :b 2})
(if (!= (.get foo :c) None) 
    (foo)  
  (boo))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM