不能有可选
回答
& bar
指函数的定义是什么的争论所有其余的将被放入一个列表。它不能保证列表的大小,所以它可以是空的,有一个或多个项目。
一个更好的方法具有一个和唯一的可选参数,是有它接受零个或一个参数:
(defn foo
([] (foo 12))
([bar] (if (= bar 12) 1 2)))
在这个例子中,如果你调用第一个函数的定义,以零元数,它会只需拨打与12
默认值第二个1元数的函数定义这将工作:
(defn foo [& bar]
(if (seq bar) 1 2))
使用seq
就是这样,你重新编码“不空”。不要与seq?
混淆,这意味着完全不同的东西,这将在事实上回到这里true
。
重要的一点是,bar
在函数体内的列表。如果你想获得这个名单回到了它是当你调用的函数,然后使用apply
,或解构的功能本身的列表,如下面的评论被解释......
的常见模式是'[&[巴]]'其中自毁第一参数并使其成为可选项。 – ClojureMostly
@ClojureMostly但是导致任何额外的参数被忽略,这可能会导致微妙的错误等[本](https://github.com/magomimmo/modern-cljs/issues/373)。 –
- 1. 可能有单选按钮不需要?
- 2. 是否有可能创建一个可选择的选项组
- 3. SQL选择可能拥有特定值
- 4. Zend Navigation - 所有XML可能的选项
- 5. 是否有可能在Android中拥有“可选”权限?
- 6. 是否有可能在泛型中有可选类型?
- 7. 是否有可能在WCF中有可选的DataMembers?
- 8. Wix3(可选)选择功能
- 9. NSBundle可能不会响应+ loadNibNamed:owner:选项:
- 10. 可选绑定不能使用ABAddressBook kABCompositeNameProperty
- 11. 可以选择但不能删除
- 12. 可选参数不能被删除?
- 13. Escape不能使用可选参数!
- 14. 有没有可能让Symfony2形式的收藏领域有不同的选择?
- 15. 有没有可能不指定包名?
- 16. 是否有可能在jQuery中为不同的选择器这样的功能?
- 17. 可选绑定函数与可选链接有什么不同?
- 18. PHP glob模式可能结束或可能不会有
- 19. 从基地退回选择只有一行,而不是所有可能匹配
- 20. 从Prolog中的列表中选择所有可能的选项
- 21. PDF选取器 - 就像媒体选择器 - 有可能吗?
- 22. 不能单击有多个选项
- 23. jQuery Selection不能选择所有元素
- 24. 不能没有选择表第一
- 25. 可选参考成员 - 是否有可能?
- 26. 带有可选聚合和组的SQL查询可能吗?
- 27. 是否有可能使用高阶函数与可选参数
- 28. 警告:“的UITabBarController”可能不响应“选择选项卡:”
- 29. 可能是什么原因,dgrid选择选择不适合我?
- 30. 方法只有可选参数不同
'(= X)在' Clojure是总是TRUE;,无论什么'x'是,只要'x'不通过抛出异常破坏形式的执行 – noisesmith