[#45189] 『初めてのRuby』出版記念トークイベントのお知らせ — KOU Keiko <keiko@...>
オライリー・ジャパンの高と申します。
2 messages
2008/07/04
[#45199] Windows版のirbでカットアンドペーストはできますか? — take_tk <ggb03124@...>
たけ(tk)です。
5 messages
2008/07/06
[#45214] Debian4 GNU/LinuxとRubyGemsについて。 — hrkt0115311 <hrkt0115311@...>
Rubyistの皆さん、おはようございます。
5 messages
2008/07/10
[#45227] [ANN/ADV] RubyKaigi2009 会場候補地を探してます — "Shintaro KAKUTANI" <shintaro@...>
かくたにです。
5 messages
2008/07/16
[#45234] Matrix のサブクラスのインスタンス生成 — "M.Uemura" <mitsuhideuemura@...>
うえむら@文京区と申します。
5 messages
2008/07/17
[#45240] ruby-1.8.5-p231にアップデートしたら"original_filename"が取れなくなりました — hayashi <36hayashi@...>
林と申します。
9 messages
2008/07/18
[#45244] Re: ruby-1.8.5-p231にアップデートしたら"original_filename"が取れなくなりました
— Nobuyoshi Nakada <nobu@...>
2008/07/19
なかだです。
[#45246] Re: ruby-1.8.5-p231にアップデートしたら"original_filename"が取れなくなりました
— とみたまさひろ <tommy@...>
2008/07/20
とみたです。
[#45241] Ruby版Camelliaライブラリ — Satoru Kanno <kanno-s@...>
Ruby-listの皆さま
5 messages
2008/07/18
[#45259] nkf -j problem? — OHARA Shigeki <os@...>
大原です。
7 messages
2008/07/25
[#45267] [ANN] Ruby 1.9.0-3リリース — "Yugui (Yuki Sonoda)" <yugui@...>
Yuguiです。
16 messages
2008/07/25
[#45268] Re: [ANN] Ruby 1.9.0-3リリース
— take_tk <ggb03124@...>
2008/07/25
たけ(tk)です。
[#45289] Fwd: [ReferenceManualRenewalProject - Bug #379] (Open) String#intern は空文字列に使えない(Ruby 1.8) -- Ruby 1.9 は違うのでは — Kouya <kouyataifu4@...>
こんばんは、kouyaです。
3 messages
2008/07/31
[ruby-list:45235] Re: Matrix のサブクラスのインスタンス生成
From:
rubikitch@...
Date:
2008-07-17 19:17:31 UTC
List:
ruby-list #45235
From: "M.Uemura" <mitsuhideuemura@yahoo.co.jp>
Subject: [ruby-list:45234] Matrix のサブクラスのインスタンス生成
Date: Fri, 18 Jul 2008 00:41:44 +0900
るびきちです。
> 頑張っているところなのですが、Matrix のサブクラスを定義しようとして、
> はまっております。
残念ながら、Matrixはサブクラスを作成できるようには作られていません。
> #"ruby -w" を受け取ってくれる env と "No such file" と弾いちゃう env
> #があるけれど、違いは何なのだろう。。。
envの問題ではなくて、#!の解釈の問題です。
一部の環境では 「#! /bin/env ruby -w」を「/bin/env」と「ruby -w」に解釈してしまい、
/bin/envの引数に「ruby -w」が渡されます。
そのため、「ruby -w」(スペースつきのコマンド)を探そうとして見つからないと言われてしまいます。
他にもいろいろな解釈の方法があるようです。
http://www.jmuk.org/diary/2007/03/01/0
http://x68000.q-e-d.net/~68user/unix/pickup?%A5%B7%A5%A7%A5%D0%A5%F3%A5%B0
> class MyMatrix < Matrix
> attr_accessor :fixed
> def initialize
> super
> @fixed = false
> end
> end
Matrix#initializeは引数を取るのでこれではだめです。
require 'matrix'
class MyMatrix < Matrix
attr_accessor :fixed
def initialize(*args)
super
@fixed = false
end
end
mtrx = MyMatrix.zero(3) # => Matrix[[0, 0, 0], [0, 0, 0], [0, 0, 0]]
mtrx.class # => Matrix
mtrx = Matrix[[11, 12], [21, 22]] # => Matrix[[11, 12], [21, 22]]
mtrx.class # => Matrix
mtrx = MyMatrix[[11, 12], [21, 22]] # => Matrix[[11, 12], [21, 22]]
mtrx.class # => MyMatrix
rows = [[1, 0], [0, 1]]
mtrx = MyMatrix.rows(rows, true) # => Matrix[[1, 0], [0, 1]]
mtrx.class # => MyMatrix
MyMatrixのインスタンスが生成されてても「Matrix[行列の内容]」と表示されているのは、
あくまでMatrix#inspectがそう定義されているためです。
Matrix.zeroは次のように定義されているため、MyMatrixのインスタンスは生成されません。
たとえサブクラスから呼ばれても無理矢理Matrixのインスタンスを作成します。
def Matrix.zero(n)
Matrix.scalar(n, 0)
end
一方、Matrix.[]は次のように定義されているため(Matrixが出てこない)、MyMatrixの
インスタンスが生成されます。
def Matrix.[](*rows)
new(:init_rows, rows, false)
end
--
rubikitch
Blog: http://d.hatena.ne.jp/rubikitch/
Site: http://www.rubyist.net/~rubikitch/