[#41449] slim ruby for embedding — Hiroshi Takagi <gollum@...>
たかぎです。
[#41455] オブジェクト同士の演算などを実装するには? — Hideo Konami <konami@...>
小波です.
From: Hideo Konami <konami@kyoto-wu.ac.jp>
小波です.
いわおかです。
小波です.
原です。
いわおかです。
なかだです。
[#41489] Matrixの継承について — argento@...
はじめまして。吉田と申します。
まつもと ゆきひろです
るびきち様、まつもと様
けいじゅ@いしつかです.
原です。
けいじゅ@いしつかです.
まつもと ゆきひろです
けいじゅ@いしつかです.
まつもと ゆきひろです
原です。
けいじゅ@いしつかです.
原です。
けいじゅ@いしつかです.
原です。
[#41503] 数を減らしてくループ — Takeshi Horinouchi <horinout@...>
堀之内と申します。
From: Takeshi Horinouchi <horinout@kurasc.kyoto-u.ac.jp>
堀之内です。
From: Takeshi Horinouchi <horinout@kurasc.kyoto-u.ac.jp>
こんにちは。ゴトウと申します。
[#41543] カスタム版Rubyの作成 — rubikitch <rubikitch@...>
るびきちです。
[#41552] Re: Windowsにおける共有フォルダーでのDir.globは一覧を返さない? — 岩崎 弘孝 <IH000667@...>
岩崎です。
[#41554] Re: Windowsにおける共有フォルダーでのDir.globは一覧を返さない? — 岩崎 弘孝 <IH000667@...>
岩崎です。
[#41561] Re: Windowsにおける共有フォルダーでのDir.globは一覧を返さない? — 岩崎 弘孝 <IH000667@...>
岩崎です。
[#41570] 別クラスのメソッドを横取り — 石井 大海 <banzaida@...>
お久しぶりで、konnです。
[#41596] 名前空間の衝突を回避する方法 — Kentaro KAWAMOTO <kentaro.kawamoto@...>
川本と申します。
From: Kentaro KAWAMOTO <kentaro.kawamoto@gmail.com>
[#41602] エクセルファイルを読み込む際の問題(質問) — "Hisashi Yahata" <yahatah@...>
質問で恐縮ですが、ご教示ください。
conundrumと申します。
babieさん、conundrumさん、早速の回答を有り難うございました。
conundrumです。
[#41624] MacOS X Aqua 対応のための tcltklib の extconf.rb — Hidetoshi NAGAI <nagai@...>
永井@知能.九工大です.
永井@知能.九工大です.
天野竜太郎と申します。
永井@知能.九工大です.
8.4.10のtcl.hやtk.hは、
永井@知能.九工大です.
> Tcl/TkAqua もこの Macintosh のルールに従うのであれば
永井@知能.九工大です.
永井@知能.九工大です.
天野です。
永井@知能.九工大です.
永井@知能.九工大です.
完全に私の勘違いです。
永井@知能.九工大です.
ruby-list:41651の
永井@知能.九工大です.
永井@知能.九工大です.
永井@知能.九工大です.
>> 13,画像を見るための簡単なユーザーインターフェイス
永井@知能.九工大です.
[ruby-list:41457] Re: オブジェクト同士の演算などを実装するには?
From: Hideo Konami <konami@kyoto-wu.ac.jp>
Subject: [ruby-list:41455] オブジェクト同士の演算などを実装するには?
Date: Thu, 3 Nov 2005 01:09:34 +0900
るびきちです。
> mike = Cat.new("みけ",4.5,"F")
> tama = Cat.new("たま",3.8,"M")
>
> babycat = mike + tama
class Cat
def +(other)
# 子作り
end
end
こういう感じで定義できないことはないです。
しかし、この場合に「+」という演算子メソッドを使うのはどうかと思います。
あとでコードを読んだとき猫と猫を「足す」という行為が、直感的にわかりません。
猫に代数的構造があるとは考えないでしょう。
普通に
babycat = mike.make_baby(tama)
だといけないですか?
> puts Cat.fight(mike,tama)
>
> みたいな形で,mike, tama のもつ性質を利用して勝ち負けを決めて
> "みけの勝ち!" といった出力を得るようにすることはできる
> でしょうか.
>
> mike.fight(tama) という形のメソッドなら簡単なのですが...
具体的なテストケースがないのでどういうのがお望みかわかりませんが、
こんな感じでしょうか?
勝手に攻撃力をセットして高い方を勝ちとしています。
引き分けの判定はなしです。(手抜き)
また、型チェックもしていません。
class Cat
def initialize(name,age,sex)
@name = name; @age = age; @sex = sex
end
attr_reader :name, :age, :sex
attr_accessor :strength
def hoge
end
def self.fight(a, b)
a.fight b
end
def fight(other)
winner = if self.strength > other.strength
self
else
other
end
"#{winner.name}の勝ち!"
end
end
mike = Cat.new("みけ",4.5,"F")
tama = Cat.new("たま",3.8,"M")
mike.strength = 100
tama.strength = 90
puts Cat.fight(mike,tama)
puts mike.fight(tama)
--
また、コンストラクタはHash引数による疑似キーワード引数の方がいいかもしれません。
{}は省略できて、見易いです。
mike = Cat.new(:name=>"みけ", :age=>4.5, :sex=>"F")
後で体重などが必要になったときにもすぐ対応できます。
mike = Cat.new(:name=>"みけ", :age=>4.5, :sex=>"F", :weight=>3.5)
class Cat
def initialize(x)
@name = x[:name]; @age = x[:age]; @sex = x[:sex]
end
end
るびきち☆
http://www.rubyist.net/~rubikitch/