gpt4 book ai didi

ruby - splat 参数后的可选参数

转载 作者:数据小太阳 更新时间:2023-10-29 06:47:41 28 4
gpt4 key购买 nike

这是我的程序:

def calculate(*numbers, options = {})
add(numbers) if options[:add]
subtract(numbers) if options[:add] == false
end

def add(*numbers)
numbers.reduce(:+)
end

def subtract(*numbers)
numbers.reduce(:-)
end

p calculate(1,2)

在第一行,它在提示

tests.rb:1: syntax error, unexpected '=', expecting ')'
def calculate(*numbers, options = {})
________________________________________________^
[Finished in 0.1s with exit code 1]

我认为这可能是 Ruby 中默认值的问题,因为在 v1.9 之前,您需要按顺序拥有所有默认值 - 但这不应该是问题,因为我的版本是

ruby 2.0.0p195 (2013-05-14) [i386-mingw32]

我试过调换所有空格,因为在涉及方法时,ruby 似乎对这些东西很特别,但没有骰子。

会不会是我的 splat 变量 *numbers

最佳答案

splat 后不能有可选参数。

splat 的意思是“用完所有剩余的参数”,但随后您提供了一个可选参数,那么解释器如何知道最后一个参数是“数字”splat 还是可选“选项”的一部分?

关于ruby - splat 参数后的可选参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17173034/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com