0

我似乎无法在 hy 中找到一个内置的(或等效的)可以让我在不处理异常的情况下检查某些内容

我想写一些类似的东西:

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

(:c foo)并且(get foo :c)都导致异常

4

1 回答 1

1

Hy 对所有 Python 运算符都有一个等效项。Hy 对所有运算符都使用前缀表示法,但不会改变操作数在中缀表示法中的顺序。所以(- 10 8)在 Hy is 中2,与 Python 中的相同10 - 8

这也适用于in运营商。(in :c foo)就像HyKeyword('c') in foo。把它想象成in(:c, foo),而不是“In foo, :c?”。

于 2019-01-15T02:04:00.520 回答