相当于drracket中的python'pass'

时间:2013-07-11 16:13:58

标签: scheme racket

有没有人知道DrRacket是否有相当于Python的pass语句或任何其他可以用来指示执行代码什么也不做的成语?

4 个答案:

答案 0 :(得分:1)

如果你想写一个空语句(一个没有用的结果),也许这对你有用:

(void)

...但如果你用一个例子来证明你想要做什么,那就更好了。无论如何,这里是documentation中相应部分的链接。

答案 1 :(得分:1)

这是一种做哈希示例的方法。

(hash-ref (hash) "not there" void)

但现在您必须检查是否返回void或您想要的值。您可能还对hash-update!hash-updatedocs)感兴趣,它将现有密钥的检查与密钥不存在的情况下的默认行为结合起来。

答案 2 :(得分:1)

在我写这个答案时,你的问题在(a)你原来的问题和(b)你对奥斯卡答案的评论中有所分布:

  

这是一个想要使用可能存在或不存在的密钥索引哈希映射的情况,因此如果找到无密钥错误,我只想忽略该错误并继续执行。

从字面上理解最后一部分:处理 - 并有效“忽略”的一般方法 - 例外是with-handlers

(hash-ref (hash) "nothing")
;; hash-ref: no value found for key
;; key: "nothing"

(with-handlers ([exn:fail? (lambda (exn)
                             "hum dee dum")])
  (hash-ref (hash) "nothing"))
;; "hum dee dum"

这似乎与Python pass as described here没有任何关系,但也许pass可以用来忽略Python中的错误;我只是不太了解它

答案 3 :(得分:0)

如果您可以处理语法表单,那么begin可以正常工作。

(if <conditional> (begin))

如果你需要一个功能,那么这个工作

(lambda ignore #f)

你可能只是通过重新修改导致“无所事事”的逻辑来避免“无所事事”的需要。