Rubyでは変数に代入を行う際に、右辺と左辺の式をカンマで区切ってやると、複数の変数への代入を1行で記述できる。 これは多重代入と呼ばれており、多重代入を使うことで変数の初期化を簡潔に書くことができる。 以下は変数aとbを、それぞれ1と2で初期化する例である。
Rubyでは変数に代入を行う際に、右辺と左辺の式をカンマで区切ってやると、複数の変数への代入を1行で記述できる。 これは多重代入と呼ばれており、多重代入を使うことで変数の初期化を簡潔に書くことができる。 以下は変数aとbを、それぞれ1と2で初期化する例である。
ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も) 「初めてのRuby」を読むの続き 7章 メソッド 7.3 ブロック付きメソッド から ■7.3 ブロック付きメソッド ・メソッド呼び出しにはブロックを付加できる →引数とともにメソッドに引き渡される ・ブロック付きメソッド呼び出しの主な用途は3つ →ループの抽象化:2章 ブロックへの機能追加。典型的にはリソース管理:5章 コールバック関数・イベントハンドラ:Arrays.sort ・ブロックの数 ・複数のブロックが必要になる場合はほとんどないことが 歴史的に知られている →どうしても必要な場合は、Proc.newやlambdaを使う ■7.3.1 クロージャーとしてのブロック ・ブロックがクロージャーとして振舞っている →ブロック内に現れる自由変数はブロックの外部環境に従う →ブ
基本的なスコープの違いを正しく理解できていませんでした。 以下にまとめました。 スコープを作らないグループ(for, while) for ループ構文の内外でスコープは変わらない。 forで渡す式はブロックではない
[edit] ローカル変数 インスタンス変数 クラス変数 クラス変数のスコープ グローバル変数 擬似変数 定数 定数参照の優先順位 Ruby の変数と定数の種別は変数名の最初の一文字によって、ローカル変数、インスタンス変数、クラス変数、グローバル変数、定数のいずれかに区別されます。通常の変数の二文字目以降は英数字または _ですが、組み込み変数の一部には「`$'+1文字の記号」という変数があります(組み込み変数を参照)。変数名の長さにはメモリのサイズ以外の制限はありません。 ローカル変数 例 foobar 小文字または`_'で始まる識別子はローカル変数またはメソッド呼び出しです。ローカル変数スコープ(クラス、モジュール、メソッド定義の本体)における小文字で始まる識別子への最初の代入はそのスコープに属するローカル変数の宣言になります。宣言されていない識別子の参照は引数の無いメソッド呼び出しとみ
Ruby にも変数宣言があったほうがいいよね、という話。 Thor タスクを書いていて desc "load KVS_FILE", "load data from given KVS file" def load(kvs_file) case kvs_file when "shift" ksv_file = Dir.glob("kvs/requests/*").sort.first when "pop" ksv_file = Dir.glob("kvs/requests/*").sort.last end p kvs_fileload("shift") しても "shift" が表示されちゃう謎の現象に遭遇。 実は Thor は引数を symbol とか特別なオブジェクトにしてる? あれ、case 文って文字列直接はダメだっけか?(classみたいに) とか色々調べること10分。原因に気付
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く