gpt4 book ai didi

Ruby:lambda 函数参数可以有默认值吗?

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

我想做类似的事情:

def creator()
return lambda { |arg1, arg2 = nil|
puts arg1
if(arg2 != nil)
puts arg2
end
}
end

test = creator()

test('lol')
test('lol', 'rofl')

我遇到了一些语法错误:

test.rb:2: syntax error
return lambda { |arg1, arg2 = nil|
^
test.rb:3: syntax error
test.rb:7: syntax error
test.rb:14: syntax error

这在 ruby​​ 中可行吗?我想为 lambda 函数设置一个参数的默认值

最佳答案

在 Ruby 1.9+ 中,您可以使用旧式 lambda 或新的“箭头”lambda 语法来设置默认参数:

ruby-1.9.1-p378 > f = lambda {|x, y=1| puts(x+y) }
=> #<Proc:0x000001009da388@(irb):4 (lambda)>
ruby-1.9.1-p378 > f.call(1)
2
=> nil
ruby-1.9.1-p378 > f.call(1,5)
6
=> nil

ruby-1.9.1-p378 > f = ->(a, b=5) { puts(a+b) }
=> #<Proc:0x00000100a0e1b0@(irb):1 (lambda)>
ruby-1.9.1-p378 > f.call(1)
6
=> nil
ruby-1.9.1-p378 > f.call(1,2)
3
=> nil

关于Ruby:lambda 函数参数可以有默认值吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3817982/

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