JS的传播语法是否出现在其他语言中?
Does JS's spread syntax appear in other languages?
我第一次遇到扩展 (...
) 语法是在 JavaScript 中,并且逐渐欣赏 many things it can do,但我承认我仍然觉得它很奇怪。是否有其他语言的等效项,那里叫什么?
是的,在 Ruby 中:splat 运算符。这是一个星号而不是三个点:
def foo(a, *b, **c)
[a, b, c]
end
> foo 10
=> [10, [], {}]
> foo 10, 20, 30
=> [10, [20, 30], {}]
> foo 10, 20, 30, d: 40, e: 50
=> [10, [20, 30], {:d=>40, :e=>50}]
> foo 10, d: 40, e: 50
=> [10, [], {:d=>40, :e=>50}]
(复制自 this answer)
Common Lisp 有 &rest
个参数:
(defun do-something (&rest params)
...
)
PHP 也有,使用三个点:它是 new feature of PHP version 5.6。
该运算符看起来像一个省略号 (...) 字符,但实际上不是。
我第一次遇到扩展 (...
) 语法是在 JavaScript 中,并且逐渐欣赏 many things it can do,但我承认我仍然觉得它很奇怪。是否有其他语言的等效项,那里叫什么?
是的,在 Ruby 中:splat 运算符。这是一个星号而不是三个点:
def foo(a, *b, **c)
[a, b, c]
end
> foo 10
=> [10, [], {}]
> foo 10, 20, 30
=> [10, [20, 30], {}]
> foo 10, 20, 30, d: 40, e: 50
=> [10, [20, 30], {:d=>40, :e=>50}]
> foo 10, d: 40, e: 50
=> [10, [], {:d=>40, :e=>50}]
(复制自 this answer)
Common Lisp 有 &rest
个参数:
(defun do-something (&rest params)
...
)
PHP 也有,使用三个点:它是 new feature of PHP version 5.6。 该运算符看起来像一个省略号 (...) 字符,但实际上不是。