1 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 08:21:23 ] プログラミング言語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 [2009/08/12(水) 11:02:58 ] >>89 面影残ってねえ
92 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 11:18:51 ] >>91 いまだに cgi-lib を使ったままのスクリプトを再利用してやる義理はねえよ irb> require 'cgi-lib' Warning:(irb):1: cgi-lib is deprecated after Ruby 1.8.1; use cgi instead true irb>
93 名前:デフォルトの名無しさん [2009/08/12(水) 11:43:55 ] >>90 やってみましたが,変わりありませんでした..
94 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 11:46:32 ] >>92 これは元記事がそもそもかなり悪いな わざわざ悪いやり方で学ぶ必要もあるまい
95 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 11:54:59 ] Ruby ユーザは CGI を書くなと言いたい (c) 弾
96 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 12:25:18 ] 不足なのなら順に説明すればいいんじゃね夏休み、と思ったが 1ページ目であっさり挫折した ttp://www.skuare.net/2007/06/ruby_1.html CGI の入力・出力構造は基本的に通常のスクリプトと変わらない ブラウザからのデータをサーバが解釈した環境変数 QUERY_STRING の中身が標準入力に既に入っていて 標準出力を行うとユーザーに送る HTML などのデータとみなされてサーバが一旦受け取るという違いしかない ただ、環境変数 QUERY_STRING を直接アクセスすることは今となってはまず無い たいていは適度に使いやすく変換してくれる肩代わりライブラリ、Ruby では標準添付の cgi 、を使う Web ブラウザは、HTML 上の送信ボタンが押されたときには、そのボタンを含む FORM 要素の INPUT 要素や TEXTAREA 要素の name 属性と value 属性をペアにしてまとめ、適当にエンコードしてサーバに送る 上記サイトでは HTML 上で value が省略されているが、普通にユーザーが入力すればその値が value としてサーバに送られる そして、サーバが受け取ったデータというのは通常 name1=値1&name2=値2… というようなひと連なりのテキストというか英数字記号の巨大な塊となっている これをいちいち安全かつ適切に自力分解復元するのは面倒だし不安なので、 cgi ライブラリにその仕事をやってもらう CGI.new とすると QUERY_STRING が読み込まれ、わかりやすく分解されて、[ ] メソッドで参照できるようになる たとえば HTML 上で name1 だった入力欄の値を利用したい場合は cgi = CGI.new cgi['name1'] とすればよい なお、標準出力はサーバが全て受け取るので、何かをユーザー向けに表示させたい場合は、 本来 Web サーバが行っていたことも全て自力でする必要がある(CGI はそういうふうになっている) HTML を表示したいのなら、 サーバが自動で行っていた Content-Type という HTTP ヘッダ等の表示も自前で行わなければならない print "Content-type: text/html\n\n" CGI#out のブロックで括るとこれを自動で行ってくれるのだが、まあそれは別の話
97 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 13:02:32 ] まずCGIの仕様をちゃんと紹介すべきだろう。
98 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 13:03:48 ] 小飼先生が猛然とアップを始めました
99 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 13:20:22 ] >>96 標準入力経由でQUERY_STRINGを渡したり 標準出力への出力が勝手にHTMLとみなされるWebサーバなんてあるの?
100 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 13:25:29 ] まあ、作ればあるんじゃないかねえ
101 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 13:41:41 ] とりあえずあれだ、QUERY_STRING は HTTP GET で、標準入力は HTTP POST だ そういやなんでわざわざ分けたんだろうな、これ GET も POST も全部標準入力に渡せばよかったんじゃねーかと思うんだが、当時なんかあったのか
102 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 14:37:04 ] RESTでこのあたりの考えが再認識されてるけど、本来の意図は、 GETはリソースを取りに行くメソッド。 リソースの位置(※)を特定する情報としてquery stringが付く。 POSTは指定リソースに対して新たなリソースを作成させるメソッド。 作成する情報はリソースの位置(※)ではないのでURLのquery stringで はなくHTTPリクエストのBODYで指定する。 ※ URL = Uniform Resource Locator
103 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 16:51:40 ] 文字列をマッチするときに =~ の右辺を別ファイルから参照させたいんだけど,どうすればいいですか?
104 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 16:54:57 ] いまいち質問がよくわからんけど re = Regexp.new("$d+") if s =~ re みたいにすれば動的に正規表現作れる
105 名前:103 mailto:sage [2009/08/12(水) 17:48:43 ] 例えば word.txtのなかに apple banana cat が入っていて,それが今後どんどん追加されていくときに =~の右辺がwordのなかを一行ずつ読み込んでマッチしているか確認してほしいのです. >>104 $dは特殊変数かなにかですか?
106 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 17:53:34 ] だからマニュアルか解説本くらい読めよ たいてい書いてあるからさ 文字列を正規表現オブジェクトにする方法はいくつかある リテラルとして直接書き込む方法 /hoge/ 変数として // 内で展開する方法 str = "hoge" /#{str}/ Regexp オブジェクトの明示的な生成 Regexp.new("hoge") 好きなの選べ
107 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 18:02:47 ] >>106 すいません.wordの中をgetsで取得しながらやってみます. ありがとうございました.
108 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 18:44:30 ] >>105->>107 なにか話がすれちがっている気がする >>103 ストップワードっていう奴ににているのかな?それを用意しておきたいの?
109 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 18:51:43 ] /¥b#{Regexp.union(File.read('words.txt').split)}¥b/ という話?
110 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 18:52:55 ] あああ、yen になってしまった。 ¥ ← これもなっちまうかな……
111 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 19:51:19 ] Regexp#=~とString#=~両方あるから右辺ってのが何かピンとこない
112 名前:デフォルトの名無しさん mailto:sage [2009/08/13(木) 02:00:02 ] 子飼団って、堀江もんの仲間で情弱のマカだった様な。
113 名前:デフォルトの名無しさん mailto:sage [2009/08/13(木) 04:48:18 ] >>112 なんでそんなに悔しがってるの
114 名前:デフォルトの名無しさん mailto:sage [2009/08/13(木) 05:48:28 ] ビョーキの人にだけ悔しがってるように見える書き方をしたから。
115 名前:デフォルトの名無しさん mailto:sage [2009/08/13(木) 07:17:45 ] × ビョーキの人にだけ悔しがってるように見える書き方をしたから。 ○ おちんちんびろーん
116 名前:デフォルトの名無しさん mailto:sage [2009/08/13(木) 07:22:05 ] >>115 なんでそんなに悔しがってるの
117 名前:デフォルトの名無しさん mailto:sage [2009/08/13(木) 07:36:36 ] おちんちんびろーん
118 名前:デフォルトの名無しさん mailto:sage [2009/08/13(木) 08:06:20 ] おまんまんがばーん
119 名前:デフォルトの名無しさん [2009/08/14(金) 03:40:25 ] WinXPで1.8.6のwin32oleで、Excelよりデータの取得をする場合で質問です。 例えば、A1 〜 A5 を取得するには cells = sheet.Range("A1:A5") と書きますが、 データがある領域の全域を指定するにはどうしたら良いでしょうか? 行と列の数が5x3程度なら大したこと無いのですが、複数のシートが数千行x数十列の データを持っている場合だと毎回スクロールして端の位置を確認しなければならず不便です。 どなたかよろしく願います。
120 名前:デフォルトの名無しさん mailto:sage [2009/08/14(金) 04:58:36 ] VBAの知識はあると仮定 「Excal シートの端」でぐぐったここ ttp://oshiete1.watch.impress.co.jp/qa4146366.html
121 名前:デフォルトの名無しさん mailto:sage [2009/08/14(金) 07:00:34 ] pc12.2ch.net/test/read.cgi/tech/1137771139/ 【OLE】オートメーション総合スレ【ActiveX】
122 名前:デフォルトの名無しさん mailto:sage [2009/08/14(金) 11:48:54 ] 子飼団ってtwitterで、「いくぞ、ちんこぉぉぉぉぉぉぉぉぉぉぉぉ」とか、 「わしはでかいがあそこは小さい」とか「オ、オオオ、オ、奥野、奥野、奥野の肛門カッカッカカカツカヤツヤクカツ括約筋、ヒャー!」 」 とか言ってた奴だろ?下品すぎる信用できない
123 名前:デフォルトの名無しさん mailto:sage [2009/08/14(金) 13:54:57 ] >>120 ,121 さんくす VBAの要領でできるんですね。
124 名前:デフォルトの名無しさん mailto:sage [2009/08/14(金) 14:43:17 ] Ruby通さないほうが書きやすいし正確だし速いんじゃね、とか思ったらこの支配からの卒業
125 名前:デフォルトの名無しさん mailto:sage [2009/08/15(土) 00:01:21 ] >>122 酒飲んでたとしたら許せるレベルだな。 括約筋ごときで下品って言ってどうする。 ゴルゴ13は、マンガの中で 女スパイとエッチして、 「この括約筋はロシア女だな」と スパイの母国を言い当てたんだぞw
126 名前:デフォルトの名無しさん mailto:sage [2009/08/15(土) 05:00:39 ] 自演醜い
127 名前:デフォルトの名無しさん mailto:sage [2009/08/15(土) 05:02:35 ] ここまで全部電網親方の自演
128 名前:デフォルトの名無しさん mailto:sage [2009/08/15(土) 08:11:07 ] >>125 上と下のレスのつながりがわからんw
129 名前:デフォルトの名無しさん mailto:sage [2009/08/15(土) 08:16:31 ] 下品な話はぴんくちゃんねるでどうぞ
130 名前:デフォルトの名無しさん [2009/08/15(土) 16:08:48 ] Ruby1.9系でシーザー暗号プログラムを作っています。 1.8では文字列配列をFixnumとして扱えましたが1.9ではStringが帰ってきます。 今、each_byteを使ってますがもっとスマートな方法を教えてください
131 名前:デフォルトの名無しさん mailto:sage [2009/08/15(土) 16:16:37 ] メールヘッダのMIMEエンコードはRubyではどうするのでしょうか? Perlでいう以下です。 use Encode; $text = "あ"; #ソースコードはcp932 Encode::from_to($text, "cp932", "MIME-Header-ISO_2022_JP"); print $text; #=>=?ISO-2022-JP?B?GyRCJCIbKEI=?=
132 名前:デフォルトの名無しさん mailto:sage [2009/08/15(土) 16:57:03 ] >>131 text = NKF.nkf('-M','あ')
133 名前:デフォルトの名無しさん mailto:sage [2009/08/15(土) 17:14:27 ] >>132 d
134 名前:デフォルトの名無しさん mailto:sage [2009/08/15(土) 17:32:39 ] >>130 文字列配列をFixnumで扱うのくだりがさっぱりわからんが、 Ruby1.8のStringはたまたまバイト列だっただけだ バイト列として扱いたければeach_byte等で回せ
135 名前:デフォルトの名無しさん mailto:sage [2009/08/15(土) 19:31:18 ] 1.9はpack unpackも使えないのか?
136 名前:デフォルトの名無しさん mailto:sage [2009/08/15(土) 23:23:59 ] >>130 str.tr("A-Z", "B-ZA")
137 名前:デフォルトの名無しさん mailto:sage [2009/08/15(土) 23:32:30 ] >>135 普通に使えるよ。
138 名前:デフォルトの名無しさん [2009/08/16(日) 04:39:04 ] >>130 です "aaaa".bytes.to_a[2] のような形で、同じようなことができるようです。答えてくださったかたありがとうございました
139 名前:デフォルトの名無しさん mailto:sage [2009/08/16(日) 05:47:38 ] スマートには見えんのだが…
140 名前:デフォルトの名無しさん mailto:sage [2009/08/16(日) 06:04:49 ] 子飼団ってテレビとかに出てるくらいだから本来下衆でしょ。まともなら低能なマスゴミとは距離を置いてる。
141 名前:デフォルトの名無しさん mailto:sage [2009/08/16(日) 06:16:40 ] >>139 ホワイラーなんだと思う
142 名前:デフォルトの名無しさん [2009/08/16(日) 06:31:12 ] >>139 codepad.org/rgAGQvq5 別に代入する所もいらないし、trと違って任意の数だけ進められる
143 名前:デフォルトの名無しさん mailto:sage [2009/08/16(日) 07:16:44 ] str.unpack('C*').collecgt {|x| x+i}.pack('C*') なら1.0でも1.9でも動く
144 名前:デフォルトの名無しさん [2009/08/16(日) 20:07:42 ] 質問です。 使用している端末エミュレータの高さ(行数)を取得するには どうすればいいのでしょうか?
145 名前:デフォルトの名無しさん mailto:sage [2009/08/16(日) 20:09:55 ] >>144 www.ruby-lang.org/ja/man/html/curses.html
146 名前:144 mailto:sage [2009/08/16(日) 22:44:47 ] >>145 ありがとうございます。 Curses::lines でいけました。
147 名前:デフォルトの名無しさん [2009/08/17(月) 00:26:17 ] class Parent attr_accessor :foo end class Child < Parent #... end という継承関係がある時、Childクラスではfooアクセッサーを 削除したいのですが、どうすればよいのでしょうか。 具体的に書きますと以下のように例外が発生してほしいです。 child = Child.new p child.foo #=> 例外発生!
148 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 00:39:58 ] Rubyにアクセサは存在しない ただのメソッドだ ということを踏まえると class Parent attr_accessor :foo end class Child < Parent undef :foo end Child.new.foo NoMethodError: undefined method `foo' for #<Child:0xb7d42530> from (irb):8 from :0
149 名前:デフォルトの名無しさん [2009/08/17(月) 00:46:40 ] リスコフの置換規則に違反することになるかもしれないが、undef_method :foo, :foo= というのがある。
150 名前:デフォルトの名無しさん [2009/08/17(月) 00:56:53 ] >>143 codepad.org/QlJCG6Ry できました。ありがとう
151 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 03:31:00 ] リスコフなんて糞くらえ。 ってか変数に型が無い言語で継承するって、実装の継承しか無いんだから undefでも好き勝手にしたらいいと思う。 え?俺OO分かってない?
152 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 04:29:32 ] >>147 の要求の時点でLSP無視なんだから何やっても構わんよ 特定のメソッドの有無に意味を持たせようとすること自体が邪悪
153 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 10:10:02 ] > Rubyにアクセサは存在しない このへんは後々尾を引いてくると推測
154 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 10:15:23 ] 特定のメソッドの有無こそがオブジェクトの本質ぢゃないか。
155 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 10:20:24 ] Rubyにアクセサは存在しないっつーか、 アクセサは、作るもの(用意するもの)なんじゃねーの? あるメソッドがアクセサかどうかというだけで。
156 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 10:45:20 ] アクセサというシステム的なナニカがあるわけではない、という程度の意味なような気もする たとえば、Object#accessors でアクセサメソッドの一覧が返るとか def hoge と def hoge= と attr_reader :hoge と attr_writer :hoge を全部定義しても hoge() と hoge=() と hoge と hoge= で全部別個に使い分けが可能だとか
157 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 14:34:53 ] リファレンスマニュアル FAQより www.ruby-lang.org/ja/man/html/FAQ_A5E1A5BDA5C3A5C9.html > 5.4 オブジェクトのインスタンス変数を外から参照できますか > 直接はできません。あらかじめそのオブジェクトにインスタンス変数を参照するためのメソッド (アクセサと言います) > を定義しておく必要があります。たとえば以下のようにします。 メソッドとアクセサは同じレベルの概念じゃないだろ
158 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 14:44:57 ] 大変だ、>>157 だけが明後日の方向に
159 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 15:05:41 ] アクセサってのはインスタンス変数へのアクセスを提供する何かであって それが言語によってメソッドだったり属性参照式だったりするということじゃないの?
160 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 15:35:17 ] >>158 おまえが理解できてないだけだ
161 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 16:08:04 ] だからさ、>>148 が悪いんだよ
162 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 16:11:43 ] 「Rubyにはアクセサという機構は存在せず、メソッド定義で代用する」 「定義の簡便のためにattr*系のメソッドがあるが、メソッド定義以上のことを期待するのは勘弁してください」 こう書けばよかったんだな
163 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 16:44:41 ] >>162 が想定する他の言語のアクセサってどんなの?
164 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 16:46:42 ] アクセサが言語レベルで実装されてる言語なんてあるのか?
165 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 16:48:22 ] def attribute=(value) これって明らかにアクセサ用の機能だろ
166 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 16:58:35 ] 初心者ですがまったく話がわかりません
167 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 17:01:10 ] 確かに、メソッド名の最後に(だけ)は = が使えるとか、 obj.foo = bar が obj.foo=(bar) の意味である、だとか、 言語レベルの機能だよな。
168 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 17:34:33 ] テストファイルで Enumerable を拡張してるんですが、これってテストにならないですよね?
169 名前: 106.79-160-162.customer.lyse.net mailto:age [2009/08/17(月) 17:53:40 ] 自動焼人 ★ = 自動保守 ◆KAWORUKOFI = 自動保守#K9K?_D[L 名言集 その3 『いつもサボってばかりのキャップがウゼえ』 yutori7.2ch.net/test/read.cgi/news4vip/1249830540/ ID:PVAf+dux0 = 自動焼人 ★ > 71 :以下、名無しにかわりましてVIPがお送りします [sage] :2009/08/10(月) 00:58:57.28 ID:PVAf+dux0 > >>69 > 大変って言うか > 毎日、報告されたのを見て、判断して、処理して、完了報告して、以下ループ。 > ちょっとでもミスすると、普段は作業もしてないキャップさんたちがさんざん文句言ってきて > その言いわけを考えないと、キャップはく奪されたりアカウント凍結されたりするから > > 登録されてから一年以上経って、やっといいたいこと言えるようになってきたよ。 ---------------------------------------------- この自動焼人 ★メールマガジンの配信停止をご希望される方は qb5.2ch.net/test/read.cgi/sec2chd/1250169591/ にて自動焼人 ★までご連絡ください
170 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 20:35:18 ] Array#include?だと指定した値と等しい要素がある場合trueを返しますけど、 等しい要素数を返すにはselectで条件を満たす要素だけとりだしてそれのsizeを調べるしかないでしょうか?
171 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 20:52:31 ] >>170 その通りです。 便乗して質問させて下さい。 include? ってなんで Array で再定義してるんでしょうか? Enumerable#include? とは違う実装になってるんでしょうか?
172 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 20:53:08 ] まあ基本的にはそう grepしてもいいが、「一致する要素の数」というのを直接返すメソッドはない というかもしあったとしても内部でfind_allしてsize求めるはず
173 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 20:58:51 ] 例として非nilを数える場合 [true,false,1, "a",nil,nil].inject(0){|r, i| r += (!i.nil?) ? 1 : 0} 書いてみたはいいけど汚いなぁ
174 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 21:11:12 ] >>171 rb_ary_includesが遅いと困るからきちんと作ったのだと推測
175 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 21:16:15 ] NTFSの副ストリームって対応してる?
176 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 21:19:19 ] >>174 なるほど。Array#include? をネイティブに書いて少しでも性能をだそうとした ということですね。 でも。。今 ruby-1.9.1-p129 の array.c 見てみたんだけど、すごく当たり前な 実装なんですね。 この程度でもネイティブ化すると結構速くなるものなんですかね?
177 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 21:22:49 ] わざわざEnumerableで定義したのを探してアクセスする時間が惜しいからそばに入れたんじゃね >>175 Windows版Rubyとして何かをしたという話は聞かない コンパイルしたときに自動で何かがどうかできるのなら対応してるかも
178 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 21:25:45 ] >>175 これで足りる? ruby 1.8.6 (2007-09-24 patchlevel 111) [i386-mswin32] open('foo.txt', 'w'){|f| f.write('in foo.txt') } open('foo.txt:sub', 'w'){|f| f.write('in foo.txt:sub') } puts File.read('foo.txt') puts File.read('foo.txt:sub')
179 名前:デフォルトの名無しさん [2009/08/17(月) 21:44:20 ] >>173 低脳死ねカス [true,false,1, "a",nil,nil].cmplact.length
180 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 21:49:39 ] >>179 低能氏ねカス s/cmplact/compact/
181 名前:デフォルトの名無しさん [2009/08/17(月) 21:54:05 ] cmplact?
182 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 21:54:11 ] length厨はマジでどうにかならんものか
183 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 21:58:14 ] size の方が好きなのけ?
184 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 21:58:26 ] >>170 sizeを調べる「しかない」わけではない。 cnt = 0 array.each {|x| cnt += 1 if some_condition(x) }
puts cnt あまり美しくないけど、どうぞ。
185 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 22:12:45 ] 質問です。 SGEをダウンロードしたいのだけれども、 www.etek.chalmers.se/~e8cal1/sge/index.html がNOT FOUNDになります。 いま、SGEはどこでダウンロードできますか?
186 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 22:27:53 ] 用途によって変えるっていう当たり前の答えが返ってくるとは思うけど・・・・ ary=["hage","hige","huge","hege","hoge"] の要素数を出力したいときに p ary.size これはaryを後で別の処理が行われると思われる場合でしょ んで、 p ["hage","hige","huge","hege","hoge"].size これは確認したい時だけでしょ んで、 ary_num=ary.size p ary_num ってやってる人がいるんだけど,これは変数が説明になってるってこと? どの段階で処理したものを変数に入れるかってのがわかんない。好き好きかな?
187 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 22:44:15 ] >aryを後で別の処理が行われると思われる場合 これは ["hage","hige","huge","hege","hoge"] の要素数を出力したいときに ary = ["hage","hige","huge","hege","hoge"] p ary.size という感じ aryに代入するのが前提なら、一番目は最も素直 二番目は主に説明・動作確認・デバッグで使われる 代入するのもめんどくさいとかスペース減らしたいとかそういうのが主な理由 三番目は正直くどい でも説明以外にも値をキャッシュしておきたいケースはあるし、そういう時には避けられない
188 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 22:45:40 ] 二番目は説明というかスレや記事とかでの解説だった
189 名前:186 mailto:sage [2009/08/17(月) 23:03:10 ] >>187-188 2番めと3番めの説明がわかりやすかったです。ありがとうございます。
190 名前:デフォルトの名無しさん [2009/08/18(火) 00:40:37 ] >>180 低脳死ね。タイプ量が多い s/l//
191 名前:デフォルトの名無しさん [2009/08/18(火) 00:54:11 ] >>190 低脳死ね。置換できてない。 cmplact => cmpact 正しくは compact ^