From: matsue Date: 2000-10-17T20:46:08+09:00 Subject: [ruby-list:25494] Re: 始めまして hachkun-lucifer2 wrote: > はじめまして。 > 清藤@はちくん@ほっかいねっとと申します。 松江です。始めまして。 > > ・元々が perl 使いだったので、「String型に入った数字の文字列」と、 > >  Numeric型(?)の自動変換が欲しいかな、とか思いました。 > > 私も元はPerl使いですが、 > ・・・そうかなぁ?私は今の方がいいです。 (中略) > ソースを追ってたら突然、見た事もない変数が旧知の親友のようにいるって、 > なんか「昔の」BASICみたいでイヤだし > (Perlの一番嫌いなとこ。Shellじゃねーだろあんたわって感じ)、 > TYPOだったらそこでエラーになってくれる事もあるし。<これが一番うれしい(^^) 私は、逆にそういう「いいかげん」なところが perl の良さかな、 と思って今まで使ってきました。 ここあたりは、ほんと、「時と用途による」のだとは思いますが、 サクサクッと書ける、という点で私は perl を愛用してきました。 確かに、ruby の方法もあるわけで・・・、良さも、「選べる」と いいかな、とふと今思ってみてたりもしています。 Visual Basic ですと、オプションで「きちんと型宣言をチェックする」 というのが指定できて、そのオプションを入れないと、結構いいかげんに、 途中出てきた変数でも問題なく使えてしまう、というのがありますが、 似たような機構を付けてくれると、ちょっとありがたいかな、とか ふと思ってみたりもしてみました。(^^; こういう、「選べる」というのは選択肢を与えるというのでいいかな、とか。 とまあ、こういう意見もあるということで・・・。 後、ふと思い出したのが、perlですと文字列連結が & ですが、ruby って + で 連結できるんですよね。これ、String <-> Numeric 自動変換をするとなると、 + の動作も変になるのかな、ってことでちょっと理解しました。 + の場合は数字に自動変換、& の場合は文字列で自動変換・連結とかすると 変にならないかな・・・とか考えたのですが、素人考えでしょうか。(^^;; 確かに、自動変換をサポートしようとすると、いろいろとやっかいそうですね。 > > もしかしたらもっと良い方法があるのかもしれませんが、今は、 > > 関数ごとに、引き値を一度変換かけて、「必ずString型」とか > > 「必ずNumeric型」とか、はっきりわかる形にしてからいろいろ > > 操作をかけている状態です。 > > ・・・わかりやすい名前にしておくっていうのは? > たとえば、 > > mailheader = Struct.new("SHeader", :date, :length, :from, :to, :subject) > > 仮にこんなのがあるとして、「length」が文字だとはあまり考えないでしょう :) > どうですか?こんな単純な手法では駄目でしょうか?・・・うーん。 あ、そういう場合でしたらもちろんわかりやすい変数名をつけているのですが、 HTMLのフォーム入力などをした時、それは文字列として引っ張ってきて、 それをそのまま他の変数に連結したり、或いはそれが数字の形式だったら (もちろん /^\d+$/ などのチェックをした後で)、ループの条件式に 使ったりとか、そのまま「どちらにも使える」という形式で今まで perl を 使ってきてましたので、同じ内容でも Numeric型のコレ、String型のコレ、 というように、「分ける」という作業が出てきた、というような感じです。(^^;; もちろん .to_s .to_i で代用できる場面も多々あるのですが、 変換時のエラーのことを考えるときちんとやらないといけないようで。 .to_s しようと思ったらnil型だった、、、とか。(たしか。) > > それと関係して、変数の中身が nil だったときの扱いが、 > > 時々うっとおしく感じてしまったのも事実です。 > > ・・・便利だと思うのは私だけか?(^^;; (中略) > まぁ、「ない」んだから、「ない」時の処理が必要ってのもリアルでいいやって、 > なんか納得しちゃいましたけど・・・ってこの前提、合ってるんだろうか<ぉぃ > 1や""は、それぞれのクラスに属した立派なオブジェクトだし。 確かに、「ない」というのがハッキリしているので、時と場合によっては とても便利だと思いました。 ただ、「時と場合によっては」「柔軟な書き方も許して。」みたいにちょっと 思ってみたりもしているので、「オプションで選ばせてもらえると・・・。」って 気持ちも出てきた今日この頃です。(^^; > > 私の組んでいるシステムが mod_ruby上で動いているせいか、 > > あ、いいですね。やっぱり、この方がオーバーヘッドもすくなさそう。 > うちの会社では、Ruby使いはまだ私だけなんで、色々環境整備中です。 あ、実はうちの会社も、それほどruby使いいません。 うちの部署では私が最初かな・・・。 mod_ruby、あまりスペック高くないマシンで試しているので、その効果が 実感できます。(^^;; > ・・・本当はCGIより、日用品として使う方がずっと多いんですが :) > 特にShellと絡むようなものを書く時、展開したくないものまで展開しないし、 > イテレータを駆使するとさっぱりすっきり綺麗に書けるし、 > 前に作ったものをお手軽にclassにしてブラックボックス化できるし、 > もう便利で便利で・・・もうRubyなしでは生活が成り立ちません(-.-;; > ルートウィンドウの壁紙の張り替えまで、rubyとcronでやってるありさまです。 おおおおお。活用してますねえ・・・。 私にも、rubyがperlに取って代わる日が来るかな。 --- Mattue E-mail: mattue@eternal.ac http://eternal.ac