2011年8月26日のブックマーク (5件)

  • 多次元配列確保でハマり! - octech

    どこかのサイトでみて、「お、かっこいい!」とか思った多次元配列の初期化をやっていて、ハマった・・。 そのコードはこちら↓ # 多次元配列確保したい. height = 24 width = 32 array = Array.new( height, Array.new( width, 0 ) ) C言語とかでいうところの、 int array[height][width]; みたいな配列を確保して、中身はすべて0で初期化しようとしたのです。見た瞬間、「さすがRuby!1行できれいに初期化コードが書ける!」と真似してみたのです。 でもこのコードでは、今回意図している動作はしないのだ! このコードを使うと、例えば、次のようなことになってしまうのです。 # 意図した挙動とは..と確認するコード. height = 24 width = 32 array = Array.new( height,

    多次元配列確保でハマり! - octech
  • Ruby:多次元配列

    Rubyでは直接多次元配列を下記のように扱うことは出来ないようです。 a = Array.new(10,5) のように10行5列の配列を作ろうと思うと、上のやり方では出来ない。ので、ちょっと面倒ですが、1次元配列の中に1次元配列を入れてやるように次のようにやればできるようです。 a = Array.new(10) a.each_index{ |y| a[y] = Array.new(5) } 初期化したければ、 a = Array.new(10) a.each_index{ |y| a[y] = Array.new(5, 0) # 0で初期化 } とします。 このようにすればあとは a[i][j] というようなアクセスが出来るようになります。

  • Rubyで多重配列やハッシュをソートする:お題目うぉっち

    2009年05月28日 Rubyで多重配列やハッシュをソートする 多重配列やハッシュのソートの仕方をよく忘れるのでメモ。 [['Tokyo',10],['Nagoya',2],['Sapporo',50],['Fukuoka',30]]こういう多重配列について、内側の配列の要素でソートしたいとする。 多重でない配列であればソートメソッド一発で何も苦労はない。p [10,2,50,30].sort実行結果[2, 10, 30, 50] 多重配列の場合、単純にソートメソッドを実行すると1個目の要素でソートされるようだ。p [["Nagoya", 2], ["Tokyo", 10], ["Fukuoka", 30], ["Sapporo", 50]].sort実行結果[["Fukuoka", 30], ["Nagoya", 2], ["Sapporo", 50], ["Tokyo", 10]]

  • ruby(on rails) で四捨五入する方法 - 夜の Discovery

    rails2.0 以降は active_support により Float が拡張されているため、Float#round を使って実現できる。 activesupport/lib/active_support/core_ext/float/rounding.rb のコメントより x = 1.337 x.round # => 1 x.round(1) # => 1.3 x.round(2) # => 1.34 rails を使わない場合は以下の記事 Ruby で小数点以下の四捨五入 http://d.hatena.ne.jp/kusakari/20080129/1201596766

    ruby(on rails) で四捨五入する方法 - 夜の Discovery
  • includeとrequire - とある誰かの覚え書き

    書式 require <ファイル名(拡張子除く)> (load <ファイル名(拡張子有り)>と同じ) include <モジュール名> 使用方法 require … ファイルをロードする include … モジュールへの参照を生成する includeするモジュールが別ファイルにある場合、先にrequireしておく必要がある。 参考 プログラミング言語 Ruby リファレンスマニュアル プログラミング言語 Ruby リファレンスマニュアル

    includeとrequire - とある誰かの覚え書き