[#837] request SCAN — Shin-ichiro HARA <sinara@...>

原です。

25 messages 1997/11/14
[#838] Re: request SCAN — matz@... (Yukihiro Matsumoto) 1997/11/14

まつもと ゆきひろです

[#839] Re: request SCAN — Shin-ichiro HARA <sinara@...> 1997/11/14

原です。

[#840] Re: request SCAN — Shin-ichiro HARA <sinara@...> 1997/11/14

原です。

[#841] Re: request SCAN — Shin-ichiro HARA <sinara@...> 1997/11/14

原です。

[#843] Re: request SCAN — matz@... (Yukihiro Matsumoto) 1997/11/14

まつもと ゆきひろです

[#844] Re: request SCAN — Shin-ichiro HARA <sinara@...> 1997/11/14

原です。

[#845] Re: request SCAN — matz@... (Yukihiro Matsumoto) 1997/11/14

まつもと ゆきひろです

[#864] [Req] Proc.new — Shin-ichiro HARA <sinara@...>

原です。

53 messages 1997/11/19
[#865] Re: [Req] Proc.new — matz@... (Yukihiro Matsumoto) 1997/11/19

まつもと ゆきひろです

[#866] Re: [Req] Proc.new — Shin-ichiro HARA <sinara@...> 1997/11/19

原です。

[#867] Re: [Req] Proc.new — matz@... (Yukihiro Matsumoto) 1997/11/19

まつもと ゆきひろです

[#875] Re: [Req] Proc.new — Shin-ichiro HARA <sinara@...> 1997/11/20

原です。

[#877] Re: [Req] Proc.new — shugo@... (Shugo Maeda) 1997/11/20

前田です。

[#879] Re: [Req] Proc.new — Shin-ichiro HARA <sinara@...> 1997/11/20

原です。

[#886] Re: [Req] Proc.new — shugo@... (Shugo Maeda) 1997/11/20

前田です。

[#890] Re: [Req] Proc.new — keiju@... (石塚圭樹 ) 1997/11/20

けいじゅ@日本ラショナルソフトウェアです.

[ruby-dev:876] Re: extension of case

From: shugo@... (Shugo Maeda)
Date: 1997-11-20 01:55:54 UTC
List: ruby-dev #876
前田です。

In message "[ruby-dev:874] extension of case"
Masaki Suketa <masaki.suketa@tonen.co.jp> wrote:

|"when 1" と書いた場合は (=== 1) の省略形と考える。

case a
when 1
  ...
end

の場合,a === 1ではなく1 === aでチェックされます。
だから,

|case a
|when ( < 1)
|  hoge1
|when ( > 1)
|  hoge2
|end

は

class Limit
  def initialize(limit, message)
    @limit = limit
    @message = message
  end
  
  def Limit.<(limit)
    new(limit, :<)
  end
  
  def Limit.>(limit)
    new(limit, :>)
  end
  
  def Limit.<=(limit)
    new(limit, :<=)
  end
  
  def Limit.>=(limit)
    new(limit, :>=)
  end
  
  def ===(n)
    return n.send(@message, @limit)
  end
end

として,

case a
when Limit < 1
  ...
when Limit > 1
  ...
end

のように書けますね。

# でも,こういう場合は素直にifを使う方がわかりやすいのでは(^^;

-- 
前田 修吾

In This Thread