Ruby 初心者スレッド ..
[
2ch
|
▼Menu
]
■コピペモード
□
スレを通常表示
□
オプションモード
□このスレッドのURL
■項目テキスト
273:デフォルトの名無しさん 09/08/19 11:00:07 >>245 Rubyの配列にはそういう機能がないです。残念でした。 代替案としては arr[x] で参照するかわりに (arr[x] ||= 0) とするとか。 たとえば arr = [1, 2, 3] puts (arr[5] ||= 0) + 1 みたいな。 あとは Array#[] を上書きすればいいのかなー class Array def [](x) val = super(x) val = self[x] = 0 if val.nil? return val end end とか。 274:デフォルトの名無しさん 09/08/19 11:12:08 >>231 めんどくせぇソース全文うpってくれ 275:203 09/08/19 11:43:54 >>263 遅くなってすいません。こうですか? require 'pp' ary=%w(w1 w2 w3 w4 w2 w3 w1 w1 w5 w2 w3 w4) window =6 hout=Hash.new ary.size.times{ |i| hin=Hash.new(0) b= ary[i+1,window].select { |word| word =~ /[^#{ary[i]}]/ } b.each {|count| hin[count] +=1} #hout[ary[i]] = hin hin.each do |key, value| hout[ary[i]][key] += value end } pp hout 実行すると at.rb:12: undefined method `[]' for nil:NilClass (NoMethodError) from mat.rb:11:in `each' from mat.rb:11 from mat.rb:5:in `times' from mat.rb:5 となってしまいます。
次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
レスジャンプ
mixiチェック!
Twitterに投稿
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch
5390日前に更新/180 KB
担当:undef