Ruby中的Lambda 1.9
发布时间:2020-12-17 02:52:09 所属栏目:百科 来源:网络整理
导读:我不跟随 this change.来自: longest_path_first = lambda do |host,location,_,_| 至: longest_path_first = lambda do |(host,_)| 谁能解释一下? 解决方法 al = lambda { |a,b,c| b } bl = lambda { |(a,c)| b } list = [[1,1,1],[2,2,2],[3,3,3],[4,4]
我不跟随
this change.来自:
longest_path_first = lambda do |host,location,_,_| 至: longest_path_first = lambda do |(host,_)| 谁能解释一下? 解决方法>> al = lambda { |a,b,c| b } >> bl = lambda { |(a,c)| b } >> list = [[1,1,1],[2,2,2],[3,3,3],[4,4]] >> list.sort_by &al ArgumentError: wrong number of arguments (1 for 3) from (irb):1:in `block in irb_binding' from (irb):4:in `each' from (irb):4:in `sort_by' >> list.sort_by &bl => [[4,4],[1,3]] 有点说明他们为什么这样做了. Ruby发生变化的原因是他们试图让lambda与普通方法保持一致: >> def test(a,c); b; end >> test [1,3] ArgumentError: wrong number of arguments (1 for 3) from (irb):16:in `test' 绕过不完全漂亮的语法的好方法是使用新的闪亮的Stab运算符tm: cl = ->(a,c) { b } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- Postgresql两列之间的日期差异?
- flex 通过WebService传数据到.net
- Oracle学习(4)---数据定义语言---分组查询
- 用XmlSerializer写xml文件与读xml文件
- vb.net – 在winforms VB中绘制进度条控件的反射
- 有没有从C或C文件中提取typedef,结构,枚举,变量,函数的命令
- ruby-on-rails – 尝试使用Koala gem扩展Facebook oauth令牌
- swift2 – Realm throw catch swift 2.0
- c – 迭代`std :: multiset`的唯一元素
- vue.js源代码core scedule.js学习笔记