[#39699] デーモン・プロセスの作り方 — "Mitsuyasu Ichimura" <mitsuyasu@...>
こんにちは、市村と申します。
27 messages
2004/06/01
[#39702] Re: デーモン・プロセスの作り方
— Hidetoshi NAGAI <nagai@...>
2004/06/01
永井@知能.九工大です.
[#39710] Re: デーモン・プロセスの作り方
— Masayoshi Takahashi <maki@...>
2004/06/01
高橋征義です。宣伝モードです(_o_)
[#39711] Re: デーモン・プロセスの作り方
— nobu.nakada@...
2004/06/01
なかだです。
[#39721] Re: デーモン・プロセスの作り方
— Masayoshi Takahashi <maki@...>
2004/06/02
高橋征義です。
[#39725] Re: デーモン・プロセスの作り方
— OHARA Shigeki <os@...>
2004/06/03
大原です。
[#39732] Re: デーモン・プロセスの作り方
— Masayoshi Takahashi <maki@...>
2004/06/03
高橋征義です。
[#39757] MacのIEだとcgi.rbのmultipartがおかしいときがある — "fuji@..." <fuji@...>
藤岡と言います。
9 messages
2004/06/15
[#39758] Re: MacのIEだとcgi.rbのmultipartがおかしいときがある
— Wataru Gotoh <gotow@...>
2004/06/15
後藤@北の方といいます。
[#39768] cygwin版 ruby1.8でPStore使用時のエラー — ikezawa@... (ikezawa)
池澤と申します。
5 messages
2004/06/19
[#39775] Hiki の脆弱性に関する注意喚起 — Kazuhiko <kazuhiko@...>
かずひこです。
7 messages
2004/06/20
[#39777] Re: Hiki の脆弱性に関する注意喚起
— SASADA Koichi <ko1@...>
2004/06/21
Kazuhiko <kazuhiko@fdiary.net> wrote :
[ruby-list:39722] Re: 最後
From:
rubikitch <rubikitch@...>
Date:
2004-06-02 22:07:48 UTC
List:
ruby-list #39722
From: Fujisaki <fujisaki@elf.coara.or.jp>
Subject: [ruby-list:39720] 最後
Date: Thu, 3 Jun 2004 00:06:28 +0900
るびきちです。
> # puts File.read(Filename).split(/\n/).collect{|list| list.split(' ')}
> #.split(/\n/) 抜き で 作動しました。
> puts File.read(Filename).collect{|list| list.split(' ')}
この例ではsplit(/\n/)がなくても動く理由を補足しておきます。
つまりStringにEnumerable#collectメソッドが使えます。なぜか?
ちなみに「クラス・モジュール名#メソッド名」はクラス・モジュールに属す
るメソッドを表す一般的な表記方法です。クラスメソッドは「クラス・モジュー
ル名.メソッド名」と表記します。ここに出てきているものではFile.readがク
ラスメソッドです。クラスメソッドはruby的にはクラスの特異メソッドです。
StringはEnumerableモジュールをincludeしています。だからStringでも
collectが使えるのです。collectをはじめとするEnumerableモジュールのメソッ
ドが使えるための条件、それはそのクラスにeachメソッドが定義されているこ
とです。String#eachは「文字列中の各行に対して繰り返し」を行うメソッド
です。String#collectは文字列中の各行をブロック引数とし、ブロックの最後
に評価された式を「集めて(collect)」配列にします。
collectについてわかりにくければ、collectの前にto_aを置いて考えてみるといいです。
to_aもEnumerableで定義されたメソッドで、繰り返す対象を配列にしたものです。
puts File.read(Filename).to_a.collect{|list| list.split(' ')}
は
puts File.read(Filename).collect{|list| list.split(' ')}
と等価です。
ただし、split(/\n/)がある場合とない場合では微妙に異なります!
文字列をsplit(/\n/)した結果は((*改行をなくした*))各行の配列です。
そのため、
puts File.read(Filename).split(/\n/).collect{|list| list.split(' ')}
のlistには改行のない文字列が入ってきます。対して、文字列に直接collect
を適用した場合、改行つきの文字列が入ってきます。ただ運がよくlistに改行
が含まれていようがいまいがsplit(' ')の結果が同じになっただけです。
ここははまりやすい点なので気をつけてください。実際俺もよくはまりました。
改行を取り除きたい場合は、String#chompを使います。破壊的バージョンとし
てString#chomp! があります。String#eachやcollectを使って改行が邪魔だ
と思ったらおもむろにchomp!してしまいましょう。
splitの引数を省略するとsplit(' ')と同じです。
空白でsplitしたいときは引数を省略してかまいません。
また、Rubyの式をいろいろ評価して実験したければ、irbを使うといいです。
Rubyをインストールしたときに一緒にインストールされますので。
irbを実行したらプロンプトが現れるのでRubyの式を入力します。
すると式が評価されて結果が表示されます。
Emacsをお使いならば、Rubyに標準添付されているinf-ruby.elをロードして、
M-x run-rubyを実行するとEmacs上でirbが使えます。
それをさらに拡張したのが拙作irbshです。
irbsh[03@07:00](main):066:0> "a\nb\nc".split
["a", "b", "c"]
http://www.rubyist.net/~rubikitch/computer/irbsh/
http://www.rubyist.net/~rubikitch/archive/irbsh-0.9.3.tar.gz
# ただいまRAAが使えないのでURLを残しておきます。
るびきち☆
http://www.rubyist.net/~rubikitch/ ←Ruby大衆化計画@移転