SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

japan.internet.com翻訳記事

Rubyが.NETプラットフォームにやってくる

.NETプログラマのためのRuby入門

  • X ポスト
  • このエントリーをはてなブックマークに追加

基本のデータ型(2)

文字

 Rubyには、組み込みの文字型はありません。文字は数値として表されます。文字定数は?構文を使って表すことができます。chrメソッドを使うと、数値をその文字に対応する文字列に変換できます。

irb(main):025:0> "Reader"[2]
=> 97
irb(main):026:0> ?a
=> 97
irb(main):027:0> 97.chr
=> "a"

代入

 単に演算を行っても、結果を格納して後から利用できなければあまり役に立ちません。

irb(main):028:0> x = 42
=> 42

 文字列には、評価を埋め込むことができる特別な構文があります。この評価は、単純な変数の置換に限りません。あらゆる評価を埋め込むことができます。

irb(main):029:0> "The answer is #{x}!"
=> "The answer is 42!"
irb(main):030:0> "The answer is #{6 * 7}!"
=> "The answer is 42!"

 評価が行われないようにするには、文字列を二重引用符(")ではなく一重引用符(')で囲みます。

irb(main):031:0> 'The answer is #{x}!'
=> "The answer is \#{x}!"

配列

 Rubyの配列は、.NET 1.0のArrayListクラスとよく似た働きをします。これらは任意の型のデータを格納できる可変サイズの配列で、添字は0から始まります。

irb(main):032:0> a = ["hello", 42, "world"]
=> ["hello", 42, "world"]
irb(main):033:0> a << 5.0 * 7.5
=> ["hello", 42, "world", 37.5]
irb(main):034:0> a[0]
=> "hello"
irb(main):035:0> a[6] = 'hi' * 2
=> "hihi"
irb(main):036:0> a
=> ["hello", 42, "world", 37.5, nil, nil, "hihi"]
irb(main):037:0> a[99]
=> nil

 このコードでは、プッシュ演算子(<<)を使って配列の末尾に要素を追加する方法と、添字演算子([])を使って値を取得および設定する方法を示しています。配列の末尾よりも後ろに要素を追加すると、配列内の「穴」はnil値で埋められます。配列の末尾を越えた位置の値にアクセスしようとすると、例外がスローされる代わりにnil値が返されます。

 範囲添字を使うと、配列の一部を切り取ることができます。これを負の添字と組み合わせて使い、前からではなく後ろから配列にアクセスすることもできます(-1は末尾の要素、-2は末尾から2番目の要素という順になります)。逆方向の範囲を使って配列の一部を逆順に切り取ることはできませんが、順方向の範囲を使った後でreverseメソッドを呼び出すことはできます。

irb(main):038:0> a[-1]
=> "hihi"
irb(main):039:0> a[1..3]
=> [42, "world", 37.5]
irb(main):040:0> a[2..-2]
=> ["world", 37.5, nil, nil]
irb(main):041:0> a[-4..-1]
=> [37.5, nil, nil, "hihi"]
irb(main):042:0> a[-1..-4]          # Won't work
=> []
irb(main):043:0> a[-4..-1].reverse  # Works fine
=> ["hihi", nil, nil, 37.5]

 文字列と同様に、配列でもいくつかのユニークで便利なメソッドを利用できます。

irb(main):044:0> a
=> ["hello", 42, "world", 37.5, nil, nil, "hihi"]
irb(main):045:0> a.compact
=> ["hello", 42, "world", 37.5, "hihi"]
irb(main):046:0> a.join
=> "hello42world37.5hihi"
irb(main):047:0> [10, 75, 6, 29].sort
=> [6, 10, 29, 75]
irb(main):048:0> [[1, 2, 3], [4, 5, 6]]
=> [[1, 2, 3], [4, 5, 6]]
irb(main):049:0> [[1, 2, 3], [4, 5, 6]].flatten
=> [1, 2, 3, 4, 5, 6]

次のページ
基本のデータ型(3)

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
japan.internet.com翻訳記事連載記事一覧

もっと読む

この記事の著者

japan.internet.com(ジャパンインターネットコム)

japan.internet.com は、1999年9月にオープンした、日本初のネットビジネス専門ニュースサイト。月間2億以上のページビューを誇る米国 Jupitermedia Corporation (Nasdaq: JUPM) のニュースサイト internet.comEarthWeb.com からの最新記事を日本語に翻訳して掲載するとともに、日本独自のネットビジネス関連記事やレポートを配信。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

Brad Wilson(Brad Wilson)

ASP.NETチームのソフトウェア開発者としてMicrosoftに3年以上在籍。開発者としての経歴は15年を超える。.NET 2.0のテスト用開発フレームワークであるxUnit.netの共同製作者の1人である。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/3405 2009/01/14 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング