タグ

関連タグで絞り込む (1)

タグの絞り込みを解除

rubyとcode snippetに関するt2y-1979のブックマーク (2)

  • Ruby の関数オブジェクト - Proc とブロックの使い方

    1. 関数オブジェクトとは これまで、Ruby のイテレータから、「ブロック付きメソッド」について見てきた。 Ruby のブロック付きメソッドとイテレータ - yield の様々な使い方 Ruby のイテレータ (2) – Enumerable と Comparable モジュール 今回は、他の言語で「関数オブジェクト」と呼ばれるものを生成するための、Proc クラスについて調べる。 Proc - Rubyリファレンスマニュアル によると、 Proc はブロックをコンテキスト(ローカル変数のスコープやスタックフレーム)とともにオブジェクト化した手続きオブジェクトです。 Ruby の解説を初めて読んだとき、Proc クラスは分かりにくかった。同時に、以下の項目も理解しずらかった。 イテレータ ブロック付きメソッド Proc オブジェクト proc lambda{} &変数 今思えば、これらを

    Ruby の関数オブジェクト - Proc とブロックの使い方
  • 2013-06-13

    概要 組み込み構文のように擬態するミミックメソッド 内容 Rubyのメソッドには記号を利用できたり、括弧を省略することで あたかも言語に組み込まれた構文のように記述できます。 このようなテクニックをミミックメソッドと呼びます。 ミミック=擬態。ドラクエ世代には分かりやすいですね。 ただのメソッドが組み込みメソッドに見えるケース putsはあたかも言語の構文のように見えますが、Kernelのメソッドです。 puts "hoge" Kernel.puts("hoge") Useクラスを継承しているようにみえるケース 実際はUseメソッドが返却するクラスを継承している # encoding: UTF-8 require 'pp' class Hoge def say puts "hoge" end end class Hage def say puts "hage" end end class

    2013-06-13
  • 1