为什么Ruby在做同样的事情时会有拉链和转置?
发布时间:2020-12-17 04:18:28 所属栏目:百科 来源:网络整理
导读:他们似乎做同样的事情. g = [{ a: "A" },{ b: "B" }]r = [{ x: "X" },{ y: "Y" }]g.zip(r) # = [[{:a="A"},{:x="X"}],[{:b="B"},{:y="Y"}]][g,r].transpose # = [[{:a="A"},{:y="Y"}]] 为什么有两种方法? 解决方法 #transpose 假设self是一个数组数组并转换
他们似乎做同样的事情.
g = [{ a: "A" },{ b: "B" }] r = [{ x: "X" },{ y: "Y" }] g.zip(r) # => [[{:a=>"A"},{:x=>"X"}],[{:b=>"B"},{:y=>"Y"}]] [g,r].transpose # => [[{:a=>"A"},{:y=>"Y"}]] 为什么有两种方法? 解决方法#transpose 假设self是一个数组数组并转换行和列.
这里有更多不同之处 a = [12,11,21] b = [1,2] [a,b].transpose # transpose': element size differs (2 should be 3) (IndexError) a.zip(b) # => [[12,1],[11,2],[21,nil]] b.zip(a) # => [[1,12],[2,11]] 应用#transpose方法a和b应该具有相同的大小.但是对于应用#zip,不需要b与a的大小相同,即b和a可以是任何大小. 使用#zip,结果数组大小将始终为self的大小.使用#transpose,生成的数组大小将是内部数组的self大小. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- ruby – rvm gemset list和rvm list gemsets之间的区别
- ajaxFileUpload SyntaxError: syntax error
- Print2Flash出现"System Error. Code:1722. RPC服务器不
- <蓝牙BLE>关于cc2540Flash断电保存的操作
- XML解析异常之 The processing instruction target matchin
- vue-cli项目无法用本机IP访问的解决方法
- c – 提供正确的移动语义
- C#中的IEnumerable接口深入研究
- ruby-on-rails – 如何在mongoid / rails中收集一个字段?
- 海思3515uboot分析一