我在Ruby中有一个基本上代表方形布尔矩阵的数组.点表示零,而任何其他字符表示零.例:
irb(main):044:0> g
=> [".b", "m."] # This grid has two '1' values and two '0' values.
Run Code Online (Sandbox Code Playgroud)
我想在这个数组上使用另一个类似的数组执行指定的逻辑运算(比方说,OR)以获得第三个结果.例如,如果h是["q.", "r."],则类似的东西g.perform_or(h)应该产生一个新数组["qb", "r."].(r表示结果的选择'm' || 'r'是任意的,不相关;任何其他非'.'字符都可以存在.)
我怎么能这样做?
编辑:我在我的例子中犯了一个错误.道歉!
对于OR:
g.zip(h).map {|gx,hx| (0...gx.size).map {|i| [gx[i..i],hx[i..i]].any? {|cell| cell != "."} ? "x" : "."}.join}
Run Code Online (Sandbox Code Playgroud)
对于AND只是改变"任何?" "全部?"
| 归档时间: |
|
| 查看次数: |
466 次 |
| 最近记录: |