加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

在Ruby中简单的调用

发布时间:2020-12-16 21:55:52 所属栏目:百科 来源:网络整理
导读:我试图用ruby做一些咖喱: def add(a,b) return a+bendplus = lambda {add}curry_plus = plus.curryplus_two = curry_plus[2] #Line 24puts plus_two[3] 我得到错误 func_test.rb:24:in `[]': wrong number of arguments (1 for 0) (ArgumentError) 来自func
我试图用ruby做一些咖喱:
def add(a,b)
  return a+b
end

plus = lambda {add}
curry_plus = plus.curry
plus_two = curry_plus[2] #Line 24
puts plus_two[3]

我得到错误

func_test.rb:24:in `[]': wrong number of arguments (1 for 0) (ArgumentError)

来自func_test.rb:24:在`

但如果我这样做

plus = lambda {|a,b| a+ b}

似乎工作但是通过打印加后,用lambda分配两种方式返回相同类型的对象.我有什么误解?

解决方法

lambda {|a,b| a+ b}

创建一个lambda,它接受两个参数,并返回第一个调用的结果,第二个作为参数.

lambda {add}

创建一个没有参数和调用add的参数的lambda,当然这是一个错误.

要做你想要的,你应该做

plus = lambda {|x,y| add(x,y)}

要么

plus = method(:add).to_proc

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读