[edit] ローカル変数 インスタンス変数 クラス変数 クラス変数のスコープ グローバル変数 擬似変数 定数 定数参照の優先順位 Ruby の変数と定数の種別は変数名の最初の一文字によって、ローカル変数、インスタンス変数、クラス変数、グローバル変数、定数のいずれかに区別されます。通常の変数の二文字目以降は英数字または _ですが、組み込み変数の一部には「`$'+1文字の記号」という変数があります(組み込み変数を参照)。変数名の長さにはメモリのサイズ以外の制限はありません。 ローカル変数 例 foobar 小文字または`_'で始まる識別子はローカル変数またはメソッド呼び出しです。ローカル変数スコープ(クラス、モジュール、メソッド定義の本体)における小文字で始まる識別子への最初の代入はそのスコープに属するローカル変数の宣言になります。宣言されていない識別子の参照は引数の無いメソッド呼び出しとみ
Railsの仕組みを体系的に学べる大型コンテンツ Rails Guides に基づいた1,600ページ超えの大型リファレンスです。 プロダクト開発に役立つ実践的な知識が満載 Railsチュートリアルを完走し、プロダクト開発中の人に最適です。 全文検索やバージョン毎の検索にも対応 Proプランでは、さらに効率的な活用をサポートします。 このアイコンが付いているガイドは現在作業中 (WIP: Work In Progress) です。作業中のガイドはそれなりに有用ではありますが、不完全な情報やエラーが含まれている可能性があります。 はじめに Rails をはじめよう Railsのインストール方法と最初のRailsアプリケーションの作成に必要なすべてを解説します。 モデル Active Record の基礎 Active Recordの基礎となるモデル、データベースへの永続的な保存、Active
定数 = constant ApplicationController に書けば、コントローラ内でグローバルになる。 ApplicationCotnroller < ActionController::Base HOGE_FUGA = 1 ... end HogeController < ApplicationController def render :text => Application::HOGE_FUGA end end モデルで書けばモデル定数。どっちかっていうとこっちをよく使うかな。 Hoge < ActiveRecord::Base STATUS_OK = 1 STATUS_NG = 0 def is_ok? ret = false if status == Hoge::STATUS_OK ret = true end end end 自分自身の参照は、Self とかじゃな
Rubyにおける定数は意図せず書き換えられることがある 以下のような場合、警告すら出ずに定数が書き換えられてしまう。 PERMIT_ID = ['0001', '0002', '1234'] PERMIT_ID.reject! { |id| id == '1234' } p PERMIT_ID # => ["0001", "0002"] Rubyにおける定数は不変の値というより、グローバル変数に近い。 また、Rubyでは先頭が大文字になっている識別子のことを定数としていることから、クラス名であるStringやArrayなども定数として扱っている。 そう考えると、クラスはメソッドを追加したり等いつでも書き換えられるミュータブルなオブジェクトなので、定数が参照するオブジェクトもミュータブルにする必要がある。 よって上記のコードはRuby的に正しい挙動なので警告は出されない。 とはいえ、定数を定
概要 全く変化しない値を、異なる場所で何度も使いたい事があります。 このような場合、「リテラル」を何箇所にも分散させて書くのではなく、const というキーワードを用いて定義した定数を使うべきです。 ポイント const キーワードを使って、定数(値が絶対に変わらない / 変えれない変数)を定義できます。 見た目は変数と同じように使えますが、値の変更はできません。 コンパイル結果は「リテラル」を直接書いた場合と同様になります。 定数は、宣言時に値をリテラルで初期化できるものにしか使えません。(new できない。) より柔軟な初期化ができる readonly (読み取り専用)変数というものもあります。 変化しない値 例えば、以下のようなコードを見てください。 int[] array = new int[5]; for(int i=0; i<5; ++i) array[i] = int.Par
コンピュータプログラミングにおいて、イミュータブル (英: immutable) なオブジェクトとは、作成後にその状態を変えることのできないオブジェクトのことである。対義語はミュータブル (英: mutable) なオブジェクトで、作成後も状態を変えることができる。mutableは「変更可能な」、immutableは「変更不可能な、不変の」という意味を持つ形容詞である。 あるオブジェクト全体がイミュータブルなこともあるし、C++でconstデータメンバを使う場合など、一部の属性のみがイミュータブルなこともある。場合によっては、内部で使われている属性が変化しても、外部からオブジェクトの状態が変化していないように見えるならば、オブジェクトをイミュータブルとみなすことがある。例えば、コストの高い計算の結果をキャッシュするためにメモ化を利用していても、そのオブジェクトは依然イミュータブルとみなせる
baristaはDefineアレルギーである。新しいプロジェクトに参画して、既存モジュールの中にDefine.javaを発見した瞬間、全身に発疹ができる。これはbarista体内のDefineに対するIgE抗体が肥満細胞を活性化、ヒスタミン,ロイトコリエンなどの化学伝達物質が体内に放出されるためである。酷い場合にはアナフィラキシーショックを引き起こし、血圧の低下と上気道の浮腫による呼吸困難に苦しむ羽目になる。この場合、エピネフリン(アドレナリン)の皮下注がfirst aidだ。ここで静注を行なってはいけない。不整脈の原因になることがあるからだ。緊急時には気管挿管を行ない....しつこいですか? 抗ヒスタミン剤を服用しつつ説明するが、C言語における.hファイルの感覚でpublic static finalな定数値を定義しまくった、巨大なDefineクラスを作ってはならない。これは有名なアン
Javaでは、定数やファイルパスなどの情報を「プロパティファイル」と呼ばれる、プログラムとは別のファイルにまとめておくことが推奨されています。こうすることで、汎用性の高いプログラムを作成できます。さらに、プロパティファイルを修正するだけで、再コンパイルをしなくても値の変更を反映させることができるので便利です。 プロパティファイルは「.properties」という拡張子を持つファイルで、キーと値のペアを「=」または「:」で区切った形式で記述します。また、行頭が「#」または「!」で始まる行は、コメント行として扱われます。以下は、円周率の値などを定義したサンプルのプロパティファイル「calculator.properties」です。 プロパティファイルを使用するには、JavaのコアAPIとして用意されているjava.util.Propertiesクラスを利用します。このPropertiesクラス
今回は「プロパティファイル」の常識について、Java言語を通じて学んでいきます。 多くの場合、プロパティはプロパティファイルという物理的なファイルと関連付けられて私たちの前に現れます。プログラミング言語内では完結せずに外部の物理ファイルとのかかわりが強く出てくる話題であるため、初心者のうちはなかなかなじみにくい技術かもしれません。しかし、プログラミングにおいて重要ですので、しっかり習得してしまいましょう。 「プロパティファイル」ってどんなもの? 私たちがJava関連のソフトウェアを扱っていると、ファイルの拡張子が「.properties」となっているファイルを見掛けたり、あるいはその内容を編集することがあります。この「.properties」拡張子のテキストファイルが、プロパティファイルです(違う拡張子を付ける場合もありますが)。 テキストエディタなどを利用してプロパティファイルの中身を見
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く