rubyの最近のブログ記事

カテゴリー:

Rubyリファレンスマニュアル - リテラル

<<識別子' を含む行の次の行から `識別子' だけの行の直前までを文字列とする。
ヒアドキュメントでは、開始ラベル `<<識別子' が文法要素としての式にあたります。これは、開始ラベルを使ってヒアドキュメント全体を引数に渡したりレシーバにしたりすることができるということを意味します。
開始ラベルを `<<-識別子' のように `-' を付けて書くことで終端行をインデントすることができます。
一行に複数のヒアドキュメントを書くこともできます。
開始ラベル `<<識別子' の `識別子' を(""、''、``)のいずれかで囲むことで、ヒアドキュメントとなる文字列リテラルの性質は対応する文字列リテラルと同じ扱いになります。

カテゴリー:

カテゴリー:

・ActiveTclをインストール
・環境変数 RUBY_TCL_DLL, RUBY_TK_DLL を tcl84.dll, tk84.dll のあるパス に設定する
・テスト実行時に--runnner=tkオプションを付ける

WindowsでのRuby/Tkのインストール

Rubyリファレンスマニュアル - RubyTkFAQ::インストール

カテゴリー:

カテゴリー:

カテゴリー:

[ruby] alias

|

カテゴリー:

Stringは変更されるたびに新しいインスタンスが作られるから、freezeしても無意味?
整数の場合は、freezeできない?

arr = [1, 2, 3]
puts arr.frozen?  # → false
arr << 4
p arr

arr.freeze
puts arr.frozen?  # → true
#arr << 5  # TypeErrorになる

a = String.new("test")
puts a
puts a.object_id

a.freeze
puts a.frozen?

a = "testtest"
puts a
puts a.object_id

n = 0
puts n
puts n.object_id

n.freeze
puts n.frozen?

n = 1
puts n
puts n.object_id

カテゴリー:

def one(arg)
  if block_given?
    "block given to 'one' returns #{yield}"
  else
    arg
  end
end

def two
  if block_given?
    "block given to 'two' returns #{yield}"
  else
    "no block given to 'two'"
  end
end

# ブロックはtwoに関連付けられる
result1 = one two {
  "three"
}

# ブロックはoneに関連付けられる
result2 = one two do
  "three"
end

result3 = one two

puts "With braces, result = #{result1}"
puts "With do/end, result = #{result2}"
puts "With no block, result = #{result3}"

出力結果:
With braces, result = block given to 'two' returns three
With do/end, result = block given to 'one' returns three
With no block, result = no block given to 'two'

カテゴリー:

Radrails で関数名の補完ができるなんて : 僕は発展途上技術者

RadRailsで関数名の補完

Alt + /

RadRailsで対応するアクション(コントローラ)とビューの切り替え

Ctrl + Shift + v で切り替え可能

カテゴリー: