- 1 名前:デフォルトの名無しさん [2010/03/04(木) 11:00:57 ]
- プログラミング言語Rubyについての、初心者向けスレです。質問・要望・雑談などどうぞ。
★注意★ Ruby 1.9.1 は初心者にはまだ時期早尚です。初心者には Ruby 1.8.7 を強くお勧めします。 (理由:現時点では有名ライブラリやアプリが 1.9.1 に完全には対応していないためです) 1.8.7 でも 1.9 系に導入された新機能のいくつかが利用可能なため、1.8.7 を習得すれば将来スムーズに 1.9 系に移行できるでしょう。 関連スレやURLは>>2-5あたりを見てください。Ruby on Rails の質問は Webプログラミング板の Rails スレへ。 ■質問する人へ 質問する前に次の3つをすること。ここで回答を待つよりそのほうが早い。 ・モジュール名やエラーメッセージでググる ・マニュアルで引っかかったクラスの記述を探す www.ruby-lang.org/ja/man/ ・FAQを一応読む www.ruby-lang.org/ja/man/?cmd=view;name=Ruby+FAQ 質問には以下を書くこと。へたくそな質問は再提出を要求される。 ・詳しい内容(「動きません」「うまくできません」では回答しようがない) ・エラーメッセージ(自力で訳さずなるべくそのままで) ・実行環境(OS名、Rubyのバージョン(ruby -v でわかる)) ・最終的にやりたいこと(もっとよい方法がある場合が多いので) 回答してくれた人には「ありがとう」のひとことをいってあげて。 ■回答する人へ 相手は初心者、根気よく育てるつもりで。質問がへたくそなのも大目にみてあげる。 それができないならこないこと(だって初心者スレだもん)。 ・既出な質問やFAQは「XXXを読め」でいいので、叩かない&怖がらせない。 ・わけわかな質問にもエスパー発揮で。できれば質問の仕方を教えるぐらいで。 ・自信がない回答ならその旨表明すること。誤った回答は初心者じゃ見抜けない。
- 91 名前:デフォルトの名無しさん mailto:sage [2010/03/06(土) 23:07:31 ]
- Trident使うライブラリってMFC以外にあんの?
- 92 名前:デフォルトの名無しさん mailto:sage [2010/03/06(土) 23:23:48 ]
- IEコンポーネントとして呼べばいい
Tk→OpTcl→InternetExplorer どっちにしてもRubyの関わる分はたいそう少ない
- 93 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 00:38:05 ]
- >>86
win32oleでIEコンポーネント操作すりゃいいんじゃないかね。 前にC#でやったことがあるが、COMがわかってりゃ別段困難ではない。
- 94 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 00:42:46 ]
- COM/Interopがわかってるような人間はこのスレで質問するわけがない
- 95 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 01:10:25 ]
- これから言語の勉強しようとしているのですが
RubyでGUYツール作れますか? C#のようにマウスでコントロール配置できたりしますか?
- 96 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 01:11:25 ]
- まず言語とIDEの区別ができるようになろうな。
- 97 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 01:16:47 ]
- GUYツールワロタ
- 98 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 01:25:56 ]
- RubyでGUI用のIDEはありますか?
- 99 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 01:33:05 ]
- ないんじゃない?
ttp://jp.rubyist.net/magazine/?0001-RubyGUI#l10 この記事の内容って今も大きい変化ない?
- 100 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 01:38:58 ]
- IDEといえば、CodeGearどうしたのかと思ったらDBツールの会社と
合併して、今は3rdRail以外にTurboRubyなんての出してたのね。
- 101 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 01:41:30 ]
- 見た感じ3rdRailと同じようにEclipseのプラグインぽいなー
と思いつつ機能一覧を見たら、3rdRailからRails関連を取っ払っ た感じだった。
- 102 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 01:42:30 ]
- Turboなんとかって命名には不吉な匂いしかしない
- 103 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 01:46:25 ]
- 今はDelphiもそこの製品扱いなのか……
- 104 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 01:53:11 ]
- 勉強のためならGladeでいんじゃね?
コードエディタとかついてないとイヤなの?
- 105 名前:デフォルトの名無しさん [2010/03/07(日) 02:04:21 ]
- C#用のIDEってそんなこと出来るのか
- 106 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 02:06:42 ]
- ホームページビルダーみたいな出力だったらいやだな
どうなんだ
- 107 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 02:20:37 ]
- wxRuby+wxFormBuilderでも使っとけ
- 108 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 02:27:29 ]
- >>107
いいねそれ 遊んでみよう
- 109 名前:デフォルトの名無しさん [2010/03/07(日) 07:04:30 ]
- >>81
こちらでは問題なくインストールいけたが Ubuntu 9.04 on coLinux
- 110 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 11:29:43 ]
- >>86
遅いレスだが情報サンクス 半信半疑でやってみたがあっさり動いた(Ubuntu9.04) おもしろいね
- 111 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 12:48:25 ]
- この言語はどういったユーザーを主に対象にしているんでしょうか?
ぐぐってみるとWebアプリケーションとのことだけど Windowsデスクトップアプリを主に作る場合はおすすめできないですか?
- 112 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 12:52:12 ]
- >>111
> Windowsデスクトップアプリを主に作る場合はおすすめできないですか? 1ミリもおすすめできません とても大雑把には C# で試してみることをおすすめします 物足りないなら他の Java なりなんなりを使えばよろし C# で挫折しないなら他の言語も我慢できましょう
- 113 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 13:51:13 ]
- Rubyの初心者向け的立ち位置って微妙だよね
このご時世にコンソールアプリケーションが基本とか華がないにも程がある 得意分野が狭いからわかりやすいんだけどさ これでデフォルトでウィンドウ制御しないといけないとかだったらめんどくて吐く
- 114 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 14:18:23 ]
- しつもん
freeze って実際はどんなときに使うの? マニュアル読まない人用? あと、TypeError という汎用な例外が出るのはなんで? ModifyFrozenObject とかそういう特有の例外ならよかったのに
- 115 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 14:32:39 ]
- >>111
いろいろな使い方があると思うけど 俺は簡単な書き捨てスクリプトに主に使ってる ファイルの名前を書き換えたりとか,複数のファイルからデータ 抽出してまとめ直すとか,ファイルのデータフォーマット変えるとか そういうのを大量に行いたい時使うこと多い C++とかで書いても良いけどこういうのはrubyの方が楽 逆に手の込んだもの書く時はC++の方が楽というか安心 単に慣れの問題かも知れんが
- 116 名前:111 mailto:sage [2010/03/08(月) 14:43:33 ]
- 調べてみたところ、LL系とコンパイラ系の両方1つづつ
覚えていると良いらしいので簡単だと言われている RUBYをやってみようと思ったのですが 実際どういう感じで使われているのかがよくわからなくて 質問させていただきました WEBアプリを作ることはまずないんですが >>115さんのようなことができるならちょっと興味があります
- 117 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 14:50:22 ]
- >>116
やめとけ 君の考えているようなものではない
- 118 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 15:00:05 ]
- >>114
例外について。 あまり例外の階層構成については細かく考えられていない。 現在TypeErrorを返している一部はArgumentErrorを返すべき(逆だった かも)といった指摘も現在進行形で存在する。数学のほうの例外 体系もErrnoとは分けて作るような動きがあったかな。
- 119 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 15:05:13 ]
- >>117
使ってるの普通にWindowsだろうしな コマンドプロンプトの使用の概念から慣れていかないと RubyがLinuxやらCGIやらと親和性が強くて便利だと言われる理由は 「普段使ってるもの」をRubyスクリプトで直接パワーアップさせることができるから 普段からコンソール使ってコマンドラインプログラムを利用してるLinuxやCGIなんかの場合は Rubyで作ることができるものがそれそのものと同種のものだから、即取り入れることができる それこそ、覚えた日から即生活が豊かになる しかしWindowsは違う ごく一般的にはウィンドウアプリケーションじゃないとどうにもならん そして、それは「Rubyを使うべき分野」ではない(苦行の趣味に近い)
- 120 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 15:09:45 ]
- Windowsでプログラミングしたことない、、一度も。
- 121 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 15:51:30 ]
- 俺もWindowsはないな。MS-DOSはTurbo PascalとSmalltalk/VとModula-2ぐらいだな。
- 122 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 16:12:21 ]
- >>116
Rubyがそれほど簡単だとは思わないけど。
- 123 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 16:35:37 ]
- 簡単かどうかで言えばかなり簡単な部類
ただし、プログラミング初心者には難しい リアル師匠にあたる人がいればなんてことないが、これはどの言語でも同じか Perlは基本がわからないわけではないんだがなんともいえず挫折した、とかいような素養で充分なんだが それに該当するものをRuby単体独学で身につけるのは意外と辛いしRubyの役目かどうかもちと怪しい
- 124 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 16:40:59 ]
- 中学生に EPSON BASIC(中古・マニュアルのみ) → 大学で Perl4 → KENT CGI(笑) → うーんなんか違う
という経緯をたどった俺には Ruby はどんぴしゃべったりで一生もの 「ちょっと遅いけどでも許す」ということを本当に口に出して言ったことをよく覚えている Ruby1.4 くらいだったかなあ
- 125 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 16:43:45 ]
- どんな顔か想像ついたw
- 126 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 16:44:39 ]
- ブラック会社みたいな物言いだな> 他の言語で基礎素養を身につけた方歓迎
- 127 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 16:48:07 ]
- >>126
めっちゃ平たく言うと完全初心者を歓待するためのドキュメント準備がない こんなとこでもいまだに適切な分野の人員不足が足引っ張ってる状態 書籍ならなんとかなりそうな気もするんだが、オンラインでもある程度あったほうがいいよね PerlとかPythonとかはnewbieを扱うための準備をかなり前からしてる Rubyはどっちかってと「わかってる人向け」で突っ走ってきたので
- 128 名前:111 mailto:sage [2010/03/08(月) 16:51:19 ]
- インストールで挫折した
ネットも繋がないといけない?ようで気味悪いので削除しました 皆様ありがとうございました
- 129 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 16:53:59 ]
- よーしrubyのためにwindows消して
ubuntuいれちゃうぞー
- 130 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 16:57:52 ]
- パパやめて!Windows消すぐらいならVMwareかVirtualBox使って!
- 131 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 17:01:47 ]
- もともと持ってないならまだしもわざわざ自分から捨てるような権利でもないな
というかそのへんは本スレでやれ
- 132 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 18:34:28 ]
- Ruby が簡単かどうかは >>119 さんもが書いているいるように
それまでの慣れや経験に依るだろうね Unix, Linuxを使って来てシェルスクリプト,sed, awk 等 使ってきた人間だと簡単に感じる 本一冊(hunt/thomas)通勤中読んでいたらすぐに簡単なものは書けるようになった 確かにターミナル使ったことない人にはわかりにくいだろう
- 133 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 19:09:23 ]
- つまり新しい言語に対応できない無能なおっさんが
いきついた場所がRubyということですね
- 134 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 19:14:54 ]
- >>133
真面目にそんなこと言っているのだとしたら、そうとう恥ずかしいぞ。
- 135 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 20:32:51 ]
- 真面目じゃなくても恥ずかしいわw
- 136 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 20:36:12 ]
- 今時、小学生でもLinuxでサーバ構築できるというのに...
- 137 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 22:47:11 ]
- ここほど口だけ出来る奴が居座ってる初心者スレは無いよな。
- 138 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 23:07:40 ]
- そんなことを言っても出せないものは出してあげられませんよ
- 139 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 23:12:27 ]
- 逆に貧相なCMD.exeでもRubyで花を咲かせることができる
windowsユーザーだってRuby使ってるぜ
- 140 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 23:49:53 ]
- でも根本的に向いてない。
教祖自らウィンドウズ使ってないしねえ。 教祖と同じデビアンから入信してみるのがいいんじゃ? まあシェルでまずは挫折して逃げ出すと思うが。 pc11.2ch.net/test/read.cgi/linux/1267107714/ Debian GNU/Linux スレッド Ver. 63 pc11.2ch.net/test/read.cgi/linux/1154631461/ Debian原理主義者テラモエス
- 141 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 00:03:36 ]
- 逆に、WindowsでRubyをバリバリに使ってる人ってガチガチに独自の快適コンソール環境を構築してそうだよなあ。
- 142 名前:デフォルトの名無しさん [2010/03/09(火) 00:42:22 ]
- ある課題があって、それをRubyで解決したいのですが御知恵を。。。
課題というのは、仕事でつかってるIBM系のメインフレームのデータセット? という1レコード3Kbyte程度のバイナリファイルをFTPでおとしてきて 読み込み加工して出力し、またメインフレーム上に戻す(できれば)という ものです。 そのバイナリファイルとは別に、項目名と、その項目の値は何バイト目から 何バイトがPACだ、小数点以下は何桁だ、CHARだというレイアウトファイル なるものがあります。文字コードはEBCDICというものらしいです。 このままじゃデータをエクセルに落して、手作業でやらされる羽目になります。。。 どう料理していけば良いでしょう?
- 143 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 00:44:40 ]
- どう加工するかによるだろそりゃ。
バイナリファイルの扱い自体は別に困難じゃない。 unpackして適当に加工してまたpackすりゃいい。 問題はEBCDICの扱いになるかな。なんかライブラリあったかなあ?
- 144 名前:デフォルトの名無しさん [2010/03/09(火) 00:52:39 ]
- さっそくありがとうございます。
pack,unpackの扱いについては、このあたりで良いですか? ttp://www.ruby-lang.org/ja/man/html/pack_A5C6A5F3A5D7A5ECA1BCA5C8CAB8BBFACEF3.html
- 145 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 00:56:11 ]
- バイナリ列をバイナリのまま扱った経験がないとしたら茨の道と言わざるを得ないが
Rubyはそのへんを助けるようなことはしない
- 146 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 01:04:49 ]
- COBOLとRubyって、すごい対比だなw
金融機関の人間だけど、そういう場合は必ずいったんRDBに入れたり最悪でもCSVかTSVに変換してるなぁ。 つまり汎用機→情報系用に変換→各種処理→戻し変換→汎用機というルート。 変換にはうちはF*TRANを使ってる。 iconvとかでもEBCDIC扱えるみたいね。 データセットを直接扱うなんて、 リスクが高すぎてうちでは絶対に許してくれない。
- 147 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 01:17:23 ]
- 質問に?が多すぎ。
バイナリ、とは言うが、実はASCIIの文字列かいな。 .txt の処理は、Rubyだとより柔軟にできる訳だが、今からでは、間に合わないでしょ。 SEDとか、AWKのスクリプトも書けないのか、それともそんなものも知らないのか。 おそらく、今から勉強しても間に合わないから、あなたの得意なエクセルで作業をスタート。 あとは、時間との勝負。 だな。
- 148 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 01:19:28 ]
- F*TRANって、FORTRAN?
なんで伏字にするの?
- 149 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 01:24:45 ]
- FORTRANに嫉妬しているから。
- 150 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 01:33:02 ]
- >>148
www.bsc.fujitsu.com/services/ftran/
- 151 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 01:34:01 ]
- c#なら10行書けば済む処理だな
- 152 名前:149 mailto:sage [2010/03/09(火) 01:41:46 ]
- それは、知らんかった。
音(的には)P-TOSのなんとかに似ているね。
- 153 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 01:42:02 ]
- >>150
こんなのあるのか。笑ってしまった。
- 154 名前:デフォルトの名無しさん [2010/03/09(火) 02:31:05 ]
- >>145
まさにその茨の道を進もうとしてるようですよ。 >>147 正直よくわかんね!ってところだからですよ、ええ('A`) 学生の頃も本職になった今もC++で離散系のシミュレーションとかやりつつ時期によっては しょぼいエクセルの業務システム作りをやってますよ。(VBA嫌いなので得意じゃない) sed,awkはそんなものがあるのは知ってたけど,perlでやってました。 バイナリとはいいつつ、ファイルレイアウトを見ると間違いなくパック10進数といった類 の補足説明があるので文字だけってことはないようですね。 とまあそんな自己紹介はいいから、とりあえず明日明後日ともうちょっと下調べして出直 してくる。納期もあってないようなもんなのでまったりやりますよ。 >>146手掛かりくれてありがとう。
- 155 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 12:01:13 ]
- >>114
freeze は(少なくとも組み込みや添付では)破壊的動作のメソッドの動作を禁止させるフラグ立て def hoge! raise "can't modify frozen Hoge" if self.frozen? ... end というメソッド定義に「自分でする」 破壊的動作や内部構造への再代入をされるとどっかに @foo||= なんかで残ってるインスタンス変数とかが 変更前のまま残ってて場合によっては食い違い動作の原因になりそうだとか そういうおそれがあるクラスに提供する ぶっちゃけこれ使わずに「お前が困る動作組み合わせは全部書いてあるからちゃんとマニュアル読め」でもいい マニュアル読まない人が(あるいはうっかりで)よくないタイミングで破壊的動作をしてしまっても 変更して欲しくないとタグ付けされたオブジェクトだったらメソッド動作の時点でエラー出して守ってあげよう、 そんな若さと渋さの間で揺れるナイス・サーティのアナタに贈る鼻歌みたいな応援歌
- 156 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 12:32:47 ]
- a = [ [ ] ]
a.freeze a.frozen? #=> true a[0].frozen? #=> false なんだよな。 当然といえば当然なんだが。
- 157 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 12:36:24 ]
- >>156
それは a つまり Array の freeze メソッドの動作に依存する 配列中の全要素に freeze を適用するという動作にしても構わない(不便だとは思うが) Array#freeze がそういう「外の入れ物だけフリーズさせる」ような動作にたまたまなってるだけ freeze の実装自体はもっと柔軟に対処が可能
- 158 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 12:50:48 ]
- freeze は
def hoge! raise_if_frozen … end とか def hoge! … end freeze_method :hoge! とかいう仕組みを作って簡易に利用できるほうがよかったと思う
- 159 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 12:58:03 ]
- freeze 自体が Ruby 文化とあまり適合しないと言われているから
うまい構文糖や実装ポリシーが 熱心に研究されていないんじゃないかなあ
- 160 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 13:11:39 ]
- evil rubyたのしいです。
- 161 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 13:11:51 ]
- private や protected の動作がイマイチなのと根っこはたぶん一緒だよね
- 162 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 13:44:44 ]
- if hoge && fuga.size > 0
と if hoge && !fuga.empty? どっちがいい? どっちでもない別の表現がいい?
- 163 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 13:46:31 ]
- あと
if fuga.size > 0 は unless fuga.empty? にした方がいいんだろうか? どれもお好きなようにっていう程度だろうか
- 164 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 14:07:25 ]
- >>162-163
字面が違うから意味が違う が、fuga が配列みたいなもんなら、俺は empty? の活用をまず考える empty? を使うことで否定要素が複数混じってしまうようならすっぱり諦めて size の比較とかにする そんな感じ あと配列なら Enumerable 由来の any? とか all? とかの利用も考えるといい
- 165 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 16:21:52 ]
- >>164
書き忘れてましたfugaはArrayインスタンスです 配列であれば162も163もそれぞれ動作は同じですよね?
- 166 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 16:51:22 ]
- なにを心配してるのかわからん
sizeが整数や実数を返す可能性とか考えてる?
- 167 名前:162 mailto:sage [2010/03/09(火) 17:42:10 ]
- 心配しているわけじゃなく
意味が同じなら書き方としてどっちがRubyっぽいのかなと思って >>162,163で例に出した形の文は今まで前者で書いてたんですけど empty?を使う方がいいという意見を別のところでも見たので。 特に>>162の方は否定(!)をつけてまでempty?にするのがいいのかどうかってことです
- 168 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 17:49:23 ]
- ? を使う述語があるならそっちのほうがいいという話にはどうしてもなるな
!foo.empty? みたいなのにはうんざりしてるのか、 ユーザーの作るライブラリでは相反する述語がセットで定義されてることも多い && などで繋ぐ場合は !foo.empty? みたいな記述はけっこう容認されてる雰囲気 if !foo.empty? だけだったら unless foo.empty? 使えという話になるんだけど
- 169 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 18:26:00 ]
- >>162
fuga.size > 0 より断然 fuga.empty? をお勧めします。 理由は、fuga.empty? はまさに「空かどうか」を調べるメソッドであり、やりたいことを明確に示しているからです。 これに対し、fuga.size > 0 は「サイズが0より大きいか」を表しており、「空かどうか」を直接表しているわけではありません。 つまり、fuga.size > 0 より fuga.empty? のほうがより抽象度の高い記述になっています。 なお Ruby では .empty? のほうが若干ですが動作速度が速いはずです。
- 170 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 19:01:57 ]
- 「要素があるか」を調べたいのに「空か」を調べてさらに加えて否定まで付けなきゃならんのは如何なものかってことじゃろ
- 171 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 19:35:09 ]
- だから標準で all? とか any? とかあるって
それで不足ならメソッドに掃き出すことを厭ってはならね
- 172 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 19:41:12 ]
- unlessがあるんだから使おう、と思うか、他の言語と同じようにifで書こう、と思うか、は
微妙なところだな。自分の場合、何年かの周期でふらふらしてる。
- 173 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 19:42:39 ]
- メソッドフル活用派とプリミティブ派のたたかいはまだつづく
- 174 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 19:44:37 ]
- Pythonスレ
社会人が多く、大人の発言 初心者に優しい Rubyスレ キチガイ、偏執狂、厨房の巣窟
- 175 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 19:49:56 ]
- 要素の数が0以外なら真を返す、みたいなメソッドがないことが問題をややこしくしてる
本当はこのへんは対称性があってもいい(なくてもいいが) うまいメソッド名が思いつかなかったっぽい雰囲気はあるが
- 176 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 19:56:30 ]
- >>170
(誤) さらに加えて (正) かてて加えて
- 177 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 20:05:28 ]
- any? はよいんだけど、 [ nil ].any? #=> false なので
要素が1つでもあるか、という判定としては万能ではないかもなー。
- 178 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 20:11:51 ]
- 万能ではないも何も
> 要素の数が0以外なら真を返す、みたいなメソッドがない という話が既に
- 179 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 20:18:35 ]
- def hage?
… end def fusa? !hage end みたいなメソッド定義はよく見る empty? も時流に乗るべきだとは思う
- 180 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 22:24:10 ]
- 富士通御謹製エフトランを知らん奴が意外と多いんだな
汎用機、オフコンを知らん世代が増えて来たったことだな z/OSで仕事してたころはデータセットをFTPのBINでダウンロードして shift-JISに変換とかよくやってたぜ
- 181 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 22:33:53 ]
- 懐古厨乙
- 182 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 22:37:02 ]
- >>181
レスしたのお前だけだぞ
- 183 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 22:41:39 ]
- おっさん多いなこのスレ。。
- 184 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 22:51:59 ]
- うんにゃ、知らない奴はレスしないだけ
バックグラウンドがたまたま見えただけに過ぎない
- 185 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 04:22:42 ]
- メソッドと変数が見分けがにくいな
- 186 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 09:11:00 ]
- ローカル変数のように見えて実はメソッド、というのはままある。
- 187 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 09:19:08 ]
- 「値は必ず確固としたオブジェクト」なので、メソッドだろうがローカル変数だろうが
値を返すキーワードが実際は何でできてるのかは使用者からは区別する必要ないよねというポリシーがある mes(foo) としたとき、foo が変数なのかメソッドなのかは実際どうでもいい foo という名前が解決されてその結果返されるオブジェクトだけが重要 代入が文脈依存なのはそれなりに面倒 selfの有無で同じ名前を2回使い分けられるということでもあるが
- 188 名前:デフォルトの名無しさん [2010/03/10(水) 09:26:35 ]
- さすがにそれはどうでもよくないだろー
local_var()もできないんだし
- 189 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 10:01:42 ]
- 問題になる状況自体が問題だと思うぞ
どういうネーミングだよ
- 190 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 10:10:12 ]
- めっちゃプリミティブな名前のインスタンスメソッドを作って、なおかつローカル変数もそのままの名前である場合
uri とか
- 191 名前:デフォルトの名無しさん [2010/03/10(水) 10:34:48 ]
- 下記コピペの拡散、お願いします!
-- ここから -- 欠陥だらけの悪法、民主党が準備を進めている「子ども手当」がまもなく国会を通過する見込みです。 そこで、この法案に対するクレームを直接政府に届けて、少しでも本法案を阻止できるよう動きませんか!? クレーム先:www.cao.go.jp/sasshin/hatomimi/re_hato/uketsuke.html ハトミミ「国民の声」 受付窓口 の「■ 一般受付窓口 【おかしなルール(規制・制度)】」に、「基準や要件の見直し」として、本件に関する 抗議をお願いします。実名とメールアドレスが必要となります。○制度の所管省庁 は、厚生労働省です。 なぜ本法案がまずいのか?子ども手当支給対象者、民主党支持者もじっくり考えてみてください。 【子供手当て驚愕の真実】 www.youtube.com/watch?v=Y4wuKv8ExeM&feature=related 驚愕の子供手当て 5959goc.iza.ne.jp/blog/entry/1475880/ 2010/3/10付の中日新聞 up3.viploader.net/pic/src/viploader1186653.jpg viploader.net/pic/src/viploader1186654.jpg 要件をまとめると、 「外国籍の人間も支給対象」「海外在住の日本人は支給対象外」「養子も支給対象」「財源が赤字国債」 「子どもが外国にいても支給対象」「子どもの存在証明として、法的な力を持つ手段がない」 となります。これにより、以下のことが考えられます。 1. この手当目的に、日本より経済状態が低い外国において不当な養子縁組を作るケースが激増する。 2. この手当目的に、日本にやってくる外国人(特に中国人)が激増する。 3. なによりも、負担は将来の子ども達が背負わなければならない。 国会答弁にて、政府も設計に難があるのは認めていますが、今後検討するという理由で、この欠陥を そのまま推し進めようとしています。まだ諦めるのは早いです。できる限りの手を尽くしましょう!! -- ここまで --
|

|