[#31178] in という演算子は? — "たけ(tk)" <ggb03124@...>
in という演算子はないのでしょうか?。
In <20010901205605.B2CB.GGB03124@nifty.ne.jp>
[#31191] クラスメソッドについて — cyross@...
みなさん、初めまして。
まつもと ゆきひろです
サイロスです。
まつもと ゆきひろです
[#31198] Re: [ruby-talk:20696] Re: CORBA Ruby mapping — Daisuke KANDA <MAP2303@...>
[#31205] メソッドの再定義で super は使えますか? — Take_tk <ggb03124@...>
いままで
[#31227] CGI でファイルアップロード — Kamakura Sadanori <kamakura@...>
鎌倉と申します。教えてください。
[#31234] oracle: sub query — Yasushi Shoji <yashi@...>
やすしです。
At Tue, 4 Sep 2001 19:59:11 +0900,
At Wed, 5 Sep 2001 11:46:41 +0900,
[#31238] 半角から全角へ変換 — 吉川 正晃 <yosikawa@...>
吉川と申します。こちらには初めての投稿になります。
わたなべです。
たけ(tk)です。
わたなべです。
あづみです。
たけ(tk)です。
たけ(tk)です。
[#31280] 掲示板の再読み込み時の問題 — みかみまさと <kofu@...>
こんにちは。いつもお世話になっています、みかみと申します。
[#31283] ruby 1.6.5 preview1 — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
[#31294] blade ruby-list thread 表示ストップ — Noritsugu Nakamura <nnakamur@...>
[#31303] net/telnet でホストに接続できない — Satoru Sakashita <sakasita@...>
坂下です。
[#31339] Toshihiko Inoue/mazak は不在にしております。 — Toshihiko_Inoue@...
2001/09/09 から 2001/09/30の間、不在にしております。
[#31369] Ruby 開発環境 RDE0.9.2.0 公開 — 斉藤和樹 <QZS01353@...>
こんにちは。斉藤です。
[#31377] 添付ライブラリのリファレンス (HTML) — "Sadayuki Sakamoto" <flea@...8.dion.ne.jp>
酒本と申します。
吉川です。
酒本です。
新井です。
[#31387] Win32OLE 拡張の試み — arton <arton@...>
artonです。
[#31406] RD format — "K.Kosako" <kosako@...>
RDの仕様について質問ですが、埋め込み用途ではなく、
Toshです。
[#31414] ruby 1.6.5 preview — m_seki@...
なかだです。
なかだです。
なかだです。
まつもと ゆきひろです
[#31419] Hash#+ ハッシュの足し算はいかが? — Take_tk <ggb03124@...>
class Hash
有馬です。
[#31441] 散財自慢 — keiichi matsunaga <ma2@...>
松永です。
[#31443] About Array#index — Takayasu HISANO/久野 孝泰 <taka@...>
はじめて投稿致します。
[#31463] お知恵を拝借 — cyross@...
サイロスです。
[#31486] entry ordering of RAA — Tanaka Akira <akr@...17n.org>
ふと、疑問に思ったのですが、RAA のエントリの順番はどのようにして決まっ
まつもと ゆきひろです
[#31496] Ruby/GTK latest version? — TAKAHASHI Masayoshi <maki@...>
高橋征義です。
[#31499] はじめまして AWK から Ruby — Kusunoki Kaoru <kusunoki@...>
はじめまして。
まつもと ゆきひろです
[#31508] 全角を半角に変換 — yoshikazu tsubaki <y-tsubaki@...>
#2回目の人ごめんなさい(間違えて2つのMLに送信してしまいました)
わたなべです。
In <4518-Mon17Sep2001192412+0900-eban@os.rim.or.jp>
[#31533] ruby 1.6.5 — matz@... (Yukihiro Matsumoto)
Ruby 1.6.5 is released, check out:
[#31551] incorrect float behavior if an extension calls setlocale — akira yamada / やまだあきら <akira@...>
[#31568] net/pop — OHARA Shigeki <os@...>
大原です。
[#31576] eruby が core dump — Teruki Shigitani <shigi@...>
鴫谷と申します。
[#31577] csv-1.0.1 で最後のカラムが isNull = true に — Teruki Shigitani <shigi@...>
鴫谷と申します。
[#31579] eruby の charset について — Teruki Shigitani <shigi@...>
鴫谷と申します。度々ですみません。
[#31588] re:Volume Label の取得法について — bind <bind@...>
さいとうです。
[#31593] 配列の和,積の作り方 — Yamamoto Atsushi <yamamoto@...>
山本と申します.
[#31626] my LC2001 summary — Minero Aoki <aamine@...>
あおき@結局三日連続で飲んでしまった です。
まつもと ゆきひろです
助田です。
なかだです。
あおきです。
artonです。
あおきです。
あおきです。訂正。
高橋征義です。
まつもと ゆきひろです
高橋征義です。
もりきゅうです。
なかだです。
もりきゅうです。
もりきゅうです。
こんにちは、なかむら(う)です。
なかだです。
もりきゅうです。
はじめまして、Kita といいます。
もりきゅうです。
なかだです。
こんにちは、なかむら(う)です。
なかだです。
こんにちは、なかむら(う)です。
もりきゅうです。
もりきゅうです。
もりきゅうです。
もりきゅうです。
もりきゅうです。
もりきゅうです。
[#31634] Marshal するオブジェクトを変更したい — "Shin'ya Adzumi" <adzumi@...>
あづみです。
[#31647] Net::HTTP で post — Kazuhiro NISHIYAMA <zn@...>
cgi-lib.plを使ったcgiにpostできません。
In <20010930113651.A1122@jbtkbc103.jbt.co.jp>
あおきです。
[#31649] pilot .pdb — Masatoshi SEKI <m_seki@...>
[#31653] New project: let me see... — Kazuhiko <kazuhiko@...>
かずひこです。
こんにちは。kadu です。
かずひこです。
かずひこです。
nyasu@3web です。
[ruby-list:31561] Re: はじめまして AWK から Ruby
From: Kusunoki Kaoru <kusunoki@mbox.kyoto-inet.or.jp>
Subject: [ruby-list:31560] Re: はじめまして AWK から Ruby
Date: Fri, 21 Sep 2001 11:47:11 +0900
るびきちです。
> > #!/usr/bin/env ruby
> > module AwkSplit
> > def awk_split( arg = ' ' )
> > while self.gets
> > f = split( arg )
> > yield f
> > end
> > end
> > end
*1
> > class IO
> > include AwkSplit
> > end
*2
> > ARGF.extend AwkSplit
*3
> > def awk_split( arg = ' ' )
> > ARGF.awk_split( arg ) {|args| yield args}
> > end
*4
> > if __FILE__ == $0 # awk-split.rbそのものを実行したときのみ↓のコードが実行されるイディオム。
> > open( "/etc/passwd" ) do |inf|
> > inf.awk_split( /:/ ) do |user, pass, uid, gid, group, home, shell|
> > puts user
> > end
> > end
> > end
>
> 上記プログラムが理解できません。
すみません、説明つけてませんでしたね。
何をしているかというと、
「IO#awk_split(IOのインスタンスメソッドawk_split)」(*2)と
「ARGFの特異メソッドawk_split」(*3)と
「function#awk_split(関数。厳密にはトップレベルのメソッド)」(*4)を定義してします。
冗長に書くと、
class IO
def awk_split( arg = ' ' )
while self.gets
f = split( arg )
yield f
end
end
end
def ARGF.awk_split( arg = ' ' )
while self.gets
f = split( arg )
yield f
end
end
def awk_split( arg = ' ' )
while ARGF.gets
f = split( arg )
yield f
end
end
となります。
しかし、同じようなコードが3つもあるのはよくないので、いったん module として定義し、
IOクラスにinclude(インスタンスメソッドを追加)、
ARGFオブジェクトにextend(特異メソッドを追加)しているのです。
よって、
> 1. module 内の awk_split と、 class 定義の下の
> awk_split はどういう関係になるのでしょうか?
IOクラスに AwkSplit が取り込まれてパワーアップしました。
> 2. なぜ、同じ(ような?)ものが2ついるののでしょうか?
IO#getsとfunction#getsがあるのと同じ理由です。
> 3. class の下の awk_split 内の メソッド awk_split
> は、自分自身なのでしょうか?
ARGFの特異メソッドawk_splitが呼ばれます。
> 4. ARGF.extend AwkSplit ??
ARGFにmodule AwkSplitで定義されているメソッドを特異メソッドとして追加してます。
ARGFやイテレータについてはリファレンスマニュアルなどを参照してください。
include/extendはRubyの柔軟性を示すとてもおもしろいところです。
ただ、わからないうちはこのスクリプトをブラックボックスとして扱って構いません。
> > open( "/etc/passwd" ) do |inf|
> > inf.awk_split( /:/ ) do |user, pass, uid, gid, group, home, shell|
> > puts user
> > end
> > end
要はこのように使えるということが大事な点です。
実装がわからなくても、一度定義されたらこんな簡単に使えます。
るびきち☆
http://voo.to/ruby/ ←Ruby大衆化計画(笑)