[前][次][番号順一覧][スレッド一覧]

ruby-reference-manual:528

From: okkez <okkez000@g...>
Date: Sat, 27 Oct 2007 17:07:28 +0900
Subject: [ruby-reference-manual:528] Re: Struct#== など

okkez です。

r2198 で対応しました。

07/10/20 に sheepman<sheepman@s...> さんは書きました:
> こんばんは sheepman です。
>
> Struct#== などを書いてみました。インデントも修正しました。
> よろしくお願いします。
>
> Index: Struct
> ===================================================================
> --- Struct      (revision 2174)
> +++ Struct      (working copy)
> @@ -30,3 +30,3 @@
>
> -==== 第一引数が [[c:String]] の場合
> +==== 第一引数が String の場合
>  args[0] が [[c:String]] の場合、クラス名になるので、大文字で始まる必要
> @@ -41,3 +41,3 @@
>
> -==== 第一引数が [[c:Symbol]] の場合
> +==== 第一引数が Symbol の場合
>  args[0] が [[c:Symbol]] の場合、生成した構造体クラスは名前の無い
> @@ -51,4 +51,4 @@
>
> ---- new(*args) -> ()
> ---- [](*args) -> ()
> +--- new(*args) -> Struct
> +--- [](*args) -> Struct
>  (このメソッドは Struct の下位クラスにのみ定義されています)
> @@ -80,3 +80,3 @@
>  @param member [[c:Fixnum]] でメンバのインデックスを指定します。
> -[[c:Symbol]], [[c:String]] でメンバの名前を指定します。
> +              [[c:Symbol]], [[c:String]] でメンバの名前を指定します。
>
> @@ -101,3 +101,3 @@
>  @param member [[c:Fixnum]] でメンバのインデックスを指定します。
> -[[c:Symbol]], [[c:String]] でメンバの名前を指定します。
> +              [[c:Symbol]], [[c:String]] でメンバの名前を指定します。
>
> @@ -152,3 +152,3 @@
>  @param members [[c:Fixnum]] でメンバのインデックスを指定します。
> -[[c:Symbol]], [[c:String]] でメンバの名前を指定します。
> +               [[c:Symbol]], [[c:String]] でメンバの名前を指定します。
>
> @@ -163 +163,55 @@
>  #@end
> +
> +--- ==(other)    -> bool
> +
> +自身と other のクラスが同じであり、各メンバが == メソッドで比較して等しい場合に
> +true を返します。そうでない場合に false を返します。
> +
> +@param other 自身と比較したいオブジェクトを指定します。
> +
> +  Dog = Struct.new(:name, :age)
> +  dog1 = Dog.new("fred", 5)
> +  dog2 = Dog.new("fred", 5)
> +
> +  p dog1 == dog2                #=> true
> +  p dog1.eql?(dog2)             #=> true
> +  p dog1.equal?(dog2)           #=> false
> +
> +@see [[m:Struct#eql?]]
> +
> +--- eql?(other)    -> bool
> +
> +自身と other のクラスが同じであり、各メンバが eql? メソッドで比較して等しい場合に
> +true を返します。そうでない場合に false を返します。
> +
> +@param other 自身と比較したいオブジェクトを指定します。
> +
> +  Dog = Struct.new(:name, :age)
> +  dog1 = Dog.new("fred", 5)
> +  dog2 = Dog.new("fred", 5)
> +
> +  p dog1 == dog2                #=> true
> +  p dog1.eql?(dog2)             #=> true
> +  p dog1.equal?(dog2)           #=> false
> +
> +@see [[m:Struct#==]]
> +
> +--- equal?(other)   -> bool
> +
> +指定された other が self 自身である場合のみ真を返します。
> +これは [[c:Object]] クラスで定義されたデフォルトの動作で
> +す。
> +
> +@see [[m:Struct#eql?]], [[m:Struct#==]]
> +
> +--- hash    -> Integer
> +
> +自身が保持するメンバのハッシュ値を元にして算出した整数を返します。
> +自身が保持するメンバの値が変化すればこのメソッドが返す値も変化します。
> +
> +  Dog = Struct.new(:name, :age)
> +  dog = Dog.new("fred", 5)
> +  p dog.hash                    #=> 7917421
> +  dog.name = "john"
> +  p dog.hash                    #=> -38913223
> +
>
> --
> sheepman / TAMURA Takashi
> sheepman@s...
>
> --
> ML: ruby-reference-manual@m...
> 使い方: http://QuickML.com/
>


-- 
okkez
okkez000@g...

--
ML: ruby-reference-manual@m...
使い方: http://QuickML.com/

[前][次][番号順一覧][スレッド一覧]

       523 2007-10-19 17:16 [sheepman@s...       ] Struct#== など                          
->     528 2007-10-27 10:07 ┗[okkez000@g...       ]