ruby 二つの枚举を外部イテレーターの机能で突き合わせを行いマージする
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ruby 二つの枚举を外部イテレーターの机能で突き合わせを行いマージする相关的知识,希望对你有一定的参考价值。
class Merger
def initialize(master, tran)
@master = master
@tran = tran
end
def match(master, tran)
puts " match: #{master}, #{tran}"
end
def master_only(value)
puts "m only: #{value}"
end
def tran_only(value)
puts "t only: #{value}"
end
def matching()
master_value = enum_next(@master)
tran_value = enum_next(@tran)
while (master_value || tran_value)
case cmp(master_value, tran_value)
when 0
match(master_value, tran_value)
master_value = enum_next(@master)
tran_value = enum_next(@tran)
when -1
master_only(master_value)
master_value = enum_next(@master)
else
tran_only(tran_value)
tran_value = enum_next(@tran)
end
end
end
private
def enum_next(enum)
begin
enum.next
rescue StopIteration
false
end
end
def cmp(master, tran)
return 1 unless master
return -1 unless tran
master <=> tran
end
end
a = [1,3,4,8,6].sort.to_enum
b = [2,3,5,6,7].sort.to_enum
match = Merger.new(a, b)
match.matching()
# m only: 1
# t only: 2
# match: 3, 3
# m only: 4
# t only: 5
# match: 6, 6
# t only: 7
# m only: 8
以上是关于ruby 二つの枚举を外部イテレーターの机能で突き合わせを行いマージする的主要内容,如果未能解决你的问题,请参考以下文章
markdown イテレータ
ruby ターミナルとかでファイルの削除リストを提示された时に使う。
markdown ターミナル上でlogcat的を起动して指定のタグのみ出力
python 大熊猫の数据帧の値を他の配列を参照して条件付きで操作するスクリプトを考えてみました。この例では辞书的に「名字のリスト」を阵列として参照しながら,姓ー名の入ったデータ项目の荒いバリデーショ
css 画像スライダー//四角の中に縦に5つのブロックを表示させる//来源https://jsbin.com/ziqiceh
php 投稿からカテゴリーとタグの机能を削除