知道为什么
(+ nil ) ;-> returns nil
(apply + nil) ;-> return 0 ?
Run Code Online (Sandbox Code Playgroud)
非常感谢您
这两种情况是不同的。
在 的情况下(+ nil), nil 参数代替数字。在 的情况下(apply + nil),nil 代替数字列表。
相当于
user> (+ nil)
nil
Run Code Online (Sandbox Code Playgroud)
使用申请将是
user> (apply + '(nil))
nil
Run Code Online (Sandbox Code Playgroud)
返回相同的结果。
另一方面,通过调用(apply + nil),您正在调用+一个空列表,换句话说+,不带参数调用,返回 0。以下都是等效的:
user> (+)
0
user> (apply + nil)
0
user> (apply + '())
0
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
65 次 |
| 最近记录: |