【问题标题】:Not sure what this line does不知道这条线是做什么的
【发布时间】:2011-09-28 18:38:03
【问题描述】:
(or (parse-integer (prompt-read "Rating") :junk-allowed t) 0)

这句话让我很困惑。如果您需要,完整的程序在这里:http://paste.lisp.org/display/124929

'Parse-integer' 会将字符串转换为整数,对吗?如果可能的话。 ':junk-allowed t' 让它以某种方式接受垃圾字符串吗?

虽然不知道“或”和末尾的 0 是什么。

谢谢。

【问题讨论】:

标签: lisp common-lisp


【解决方案1】:

or 遍历传递给它的表单,按顺序评估它们,直到找到不评估为 nil 的表单,然后返回该结果。因此,如果该调用成功解析整数,则返回 parse-integer 的结果,否则返回 0。

【讨论】:

  • 所以如果我在提示中输入 7,那不是零,所以行结束,但如果我输入一些像“七”这样的垃圾,它会返回 0?
  • :allow-junk t 表示像 "11eleventy!" 这样的字符串解析为数字 11,PARSE-INTEGER 返回值 11 和 (IIRC) 2(最后一次看到有效“数字符号”的位置;有效数字符号的构成取决于您要读取的基数)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-08
  • 2015-06-17
相关资源
最近更新 更多