トップページ⇒tech
1001コメント342KB

Ruby 初心者スレッド Part 30

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん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つをすること。ここで回答を待つよりそのほうが早い。
 ・モジュール名やエラーメッセージでググる
 ・マニュアルで引っかかったクラスの記述を探す http://www.ruby-lang.org/ja/man/
 ・FAQを一応読む http://www.ruby-lang.org/ja/man/?cmd=view;name=Ruby+FAQ
質問には以下を書くこと。へたくそな質問は再提出を要求される。
 ・詳しい内容(「動きません」「うまくできません」では回答しようがない)
 ・エラーメッセージ(自力で訳さずなるべくそのままで)
 ・実行環境(OS名、Rubyのバージョン(ruby -v でわかる))
 ・最終的にやりたいこと(もっとよい方法がある場合が多いので)
回答してくれた人には「ありがとう」のひとことをいってあげて。

■回答する人へ
相手は初心者、根気よく育てるつもりで。質問がへたくそなのも大目にみてあげる。
それができないならこないこと(だって初心者スレだもん)。
 ・既出な質問やFAQは「XXXを読め」でいいので、叩かない&怖がらせない。
 ・わけわかな質問にもエスパー発揮で。できれば質問の仕方を教えるぐらいで。
 ・自信がない回答ならその旨表明すること。誤った回答は初心者じゃ見抜けない。
0085デフォルトの名無しさん2009/08/11(火) 22:11:09
ID出ないから自演し放題
0086デフォルトの名無しさん2009/08/12(水) 09:31:23
http://www.skuare.net/2007/07/ruby_5.html
の一行掲示板にescapeをかけたいのですが,
表示部分を#{CGI.escapeHTML(message)}とすると,
改行したい<br>まで出力してしまいます.
単純に使い方わかってないこともありますが,ご指摘お願いします.
0087デフォルトの名無しさん2009/08/12(水) 10:01:32
>>78
s/Vim/Ruby/g にしてもあまり違和感(ry
0088デフォルトの名無しさん2009/08/12(水) 10:03:39
>>86
escapeしたいのは何故?
escapeしたいものは何?
0089デフォルトの名無しさん2009/08/12(水) 10:47:21
>>86
#!/usr/bin/ruby -Ke
require 'cgi'
require 'kconv'
# 仕様:1行掲示板なのでユーザーはHTMLタグを使えず、改行の自動置換等も行わない
# ログファイルがプレーンテキストでなくてもいいなら、ファイルにエスケープしたものを保存したくない
logfile = 'bbs_test.log'
log = File.open(logfile ,'r'){|f| f.read} rescue ''

post = CGI.new["datapost"]
if post
log = CGI.escapeHTML(post.toeuc) + "<br>\n" + log # postデータを追加
File.open(logfile, 'w'){|f| f.print(log)}
end

print "Content-type: text/html\n\n"
print <<EOF.toeuc
<html>
<head>
<title>rubyで一行掲示板</title>
</head>
<body>
<form method="POST">
一言:<input type="text" name="datapost">
<input type="submit" value="送信">
</form>
<hr>
#{log}
</body>
</html>
EOF
0090デフォルトの名無しさん2009/08/12(水) 10:48:18
>>86
1. messageを行ごとに分解
2. 行ごとにescapeHTMLする
3. 行末に<br>をつける
4. 出力する

という処理をする必要があるんじゃないかな。

def text2html(str)
str.collect {|line| CGI.escapeHTML(line).sub(/$/, '<br>') }.join()
end

#{text2html(message)}


とかでどうでしょうか。
0091デフォルトの名無しさん2009/08/12(水) 11:02:58
>>89
面影残ってねえ
0092デフォルトの名無しさん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>
0093デフォルトの名無しさん2009/08/12(水) 11:43:55
>>90
やってみましたが,変わりありませんでした..
0094デフォルトの名無しさん2009/08/12(水) 11:46:32
>>92
これは元記事がそもそもかなり悪いな
わざわざ悪いやり方で学ぶ必要もあるまい
0095デフォルトの名無しさん2009/08/12(水) 11:54:59
Ruby ユーザは CGI を書くなと言いたい (c) 弾
0096デフォルトの名無しさん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 のブロックで括るとこれを自動で行ってくれるのだが、まあそれは別の話
0097デフォルトの名無しさん2009/08/12(水) 13:02:32
まずCGIの仕様をちゃんと紹介すべきだろう。
0098デフォルトの名無しさん2009/08/12(水) 13:03:48
小飼先生が猛然とアップを始めました
0099デフォルトの名無しさん2009/08/12(水) 13:20:22
>>96
標準入力経由でQUERY_STRINGを渡したり
標準出力への出力が勝手にHTMLとみなされるWebサーバなんてあるの?
0100デフォルトの名無しさん2009/08/12(水) 13:25:29
まあ、作ればあるんじゃないかねえ
0101デフォルトの名無しさん2009/08/12(水) 13:41:41
とりあえずあれだ、QUERY_STRING は HTTP GET で、標準入力は HTTP POST だ
そういやなんでわざわざ分けたんだろうな、これ
GET も POST も全部標準入力に渡せばよかったんじゃねーかと思うんだが、当時なんかあったのか
0102デフォルトの名無しさん2009/08/12(水) 14:37:04
RESTでこのあたりの考えが再認識されてるけど、本来の意図は、

GETはリソースを取りに行くメソッド。
リソースの位置(※)を特定する情報としてquery stringが付く。

POSTは指定リソースに対して新たなリソースを作成させるメソッド。
作成する情報はリソースの位置(※)ではないのでURLのquery stringで
はなくHTTPリクエストのBODYで指定する。

※ URL = Uniform Resource Locator



0103デフォルトの名無しさん2009/08/12(水) 16:51:40
文字列をマッチするときに
=~ の右辺を別ファイルから参照させたいんだけど,どうすればいいですか?
0104デフォルトの名無しさん2009/08/12(水) 16:54:57
いまいち質問がよくわからんけど
re = Regexp.new("$d+")
if s =~ re
みたいにすれば動的に正規表現作れる
01051032009/08/12(水) 17:48:43
例えば word.txtのなかに
apple
banana
cat

が入っていて,それが今後どんどん追加されていくときに
=~の右辺がwordのなかを一行ずつ読み込んでマッチしているか確認してほしいのです.


>>104
$dは特殊変数かなにかですか?
0106デフォルトの名無しさん2009/08/12(水) 17:53:34
だからマニュアルか解説本くらい読めよ
たいてい書いてあるからさ

文字列を正規表現オブジェクトにする方法はいくつかある
リテラルとして直接書き込む方法
 /hoge/
変数として // 内で展開する方法
 str = "hoge"
 /#{str}/
Regexp オブジェクトの明示的な生成
 Regexp.new("hoge")

好きなの選べ
0107デフォルトの名無しさん2009/08/12(水) 18:02:47
>>106
すいません.wordの中をgetsで取得しながらやってみます.
ありがとうございました.
0108デフォルトの名無しさん2009/08/12(水) 18:44:30
>>105->>107

なにか話がすれちがっている気がする
>>103
ストップワードっていう奴ににているのかな?それを用意しておきたいの?

0109デフォルトの名無しさん2009/08/12(水) 18:51:43
/¥b#{Regexp.union(File.read('words.txt').split)}¥b/
という話?
0110デフォルトの名無しさん2009/08/12(水) 18:52:55
あああ、yen になってしまった。 ¥ ← これもなっちまうかな……
0111デフォルトの名無しさん2009/08/12(水) 19:51:19
Regexp#=~とString#=~両方あるから右辺ってのが何かピンとこない
0112デフォルトの名無しさん2009/08/13(木) 02:00:02
子飼団って、堀江もんの仲間で情弱のマカだった様な。
0113デフォルトの名無しさん2009/08/13(木) 04:48:18
>>112
なんでそんなに悔しがってるの
0114デフォルトの名無しさん2009/08/13(木) 05:48:28
ビョーキの人にだけ悔しがってるように見える書き方をしたから。
0115デフォルトの名無しさん2009/08/13(木) 07:17:45
× ビョーキの人にだけ悔しがってるように見える書き方をしたから。
○ おちんちんびろーん
0116デフォルトの名無しさん2009/08/13(木) 07:22:05
>>115
なんでそんなに悔しがってるの
0117デフォルトの名無しさん2009/08/13(木) 07:36:36
おちんちんびろーん
0118デフォルトの名無しさん2009/08/13(木) 08:06:20
おまんまんがばーん
0119デフォルトの名無しさん2009/08/14(金) 03:40:25
WinXPで1.8.6のwin32oleで、Excelよりデータの取得をする場合で質問です。

例えば、A1 〜 A5 を取得するには cells = sheet.Range("A1:A5") と書きますが、
データがある領域の全域を指定するにはどうしたら良いでしょうか?

行と列の数が5x3程度なら大したこと無いのですが、複数のシートが数千行x数十列の
データを持っている場合だと毎回スクロールして端の位置を確認しなければならず不便です。
どなたかよろしく願います。
0120デフォルトの名無しさん2009/08/14(金) 04:58:36
VBAの知識はあると仮定
「Excal シートの端」でぐぐったここ
ttp://oshiete1.watch.impress.co.jp/qa4146366.html
0121デフォルトの名無しさん2009/08/14(金) 07:00:34
http://pc12.2ch.net/test/read.cgi/tech/1137771139/
【OLE】オートメーション総合スレ【ActiveX】
0122デフォルトの名無しさん2009/08/14(金) 11:48:54
子飼団ってtwitterで、「いくぞ、ちんこぉぉぉぉぉぉぉぉぉぉぉぉ」とか、
「わしはでかいがあそこは小さい」とか「オ、オオオ、オ、奥野、奥野、奥野の肛門カッカッカカカツカヤツヤクカツ括約筋、ヒャー!」 」
とか言ってた奴だろ?下品すぎる信用できない
0123デフォルトの名無しさん2009/08/14(金) 13:54:57
>>120,121
さんくす
VBAの要領でできるんですね。
0124デフォルトの名無しさん2009/08/14(金) 14:43:17
Ruby通さないほうが書きやすいし正確だし速いんじゃね、とか思ったらこの支配からの卒業
0125デフォルトの名無しさん2009/08/15(土) 00:01:21
>>122
酒飲んでたとしたら許せるレベルだな。
括約筋ごときで下品って言ってどうする。

ゴルゴ13は、マンガの中で
女スパイとエッチして、
「この括約筋はロシア女だな」と
スパイの母国を言い当てたんだぞw
0126デフォルトの名無しさん2009/08/15(土) 05:00:39
自演醜い
0127デフォルトの名無しさん2009/08/15(土) 05:02:35
ここまで全部電網親方の自演
0128デフォルトの名無しさん2009/08/15(土) 08:11:07
>>125
上と下のレスのつながりがわからんw
0129デフォルトの名無しさん2009/08/15(土) 08:16:31
下品な話はぴんくちゃんねるでどうぞ
0130デフォルトの名無しさん2009/08/15(土) 16:08:48
Ruby1.9系でシーザー暗号プログラムを作っています。
1.8では文字列配列をFixnumとして扱えましたが1.9ではStringが帰ってきます。
今、each_byteを使ってますがもっとスマートな方法を教えてください
0131デフォルトの名無しさん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=?=
0132デフォルトの名無しさん2009/08/15(土) 16:57:03
>>131
text = NKF.nkf('-M','あ')
0133デフォルトの名無しさん2009/08/15(土) 17:14:27
>>132
�d
0134デフォルトの名無しさん2009/08/15(土) 17:32:39
>>130
文字列配列をFixnumで扱うのくだりがさっぱりわからんが、
Ruby1.8のStringはたまたまバイト列だっただけだ
バイト列として扱いたければeach_byte等で回せ
0135デフォルトの名無しさん2009/08/15(土) 19:31:18
1.9はpack unpackも使えないのか?
0136デフォルトの名無しさん2009/08/15(土) 23:23:59
>>130
str.tr("A-Z", "B-ZA")
0137デフォルトの名無しさん2009/08/15(土) 23:32:30
>>135
普通に使えるよ。
0138デフォルトの名無しさん2009/08/16(日) 04:39:04
>>130です
"aaaa".bytes.to_a[2]
のような形で、同じようなことができるようです。答えてくださったかたありがとうございました
0139デフォルトの名無しさん2009/08/16(日) 05:47:38
スマートには見えんのだが…
0140デフォルトの名無しさん2009/08/16(日) 06:04:49
子飼団ってテレビとかに出てるくらいだから本来下衆でしょ。まともなら低能なマスゴミとは距離を置いてる。
0141デフォルトの名無しさん2009/08/16(日) 06:16:40
>>139
ホワイラーなんだと思う
0142デフォルトの名無しさん2009/08/16(日) 06:31:12
>>139
http://codepad.org/rgAGQvq5

別に代入する所もいらないし、trと違って任意の数だけ進められる
0143デフォルトの名無しさん2009/08/16(日) 07:16:44
str.unpack('C*').collecgt {|x| x+i}.pack('C*')
なら1.0でも1.9でも動く
0144デフォルトの名無しさん2009/08/16(日) 20:07:42
質問です。
使用している端末エミュレータの高さ(行数)を取得するには
どうすればいいのでしょうか?
0145デフォルトの名無しさん2009/08/16(日) 20:09:55
>>144
http://www.ruby-lang.org/ja/man/html/curses.html
01461442009/08/16(日) 22:44:47
>>145
ありがとうございます。
Curses::lines でいけました。
0147デフォルトの名無しさん2009/08/17(月) 00:26:17
class Parent
attr_accessor :foo
end
class Child < Parent
#...
end

という継承関係がある時、Childクラスではfooアクセッサーを
削除したいのですが、どうすればよいのでしょうか。
具体的に書きますと以下のように例外が発生してほしいです。

child = Child.new
p child.foo #=> 例外発生!
0148デフォルトの名無しさん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
0149デフォルトの名無しさん2009/08/17(月) 00:46:40
リスコフの置換規則に違反することになるかもしれないが、undef_method :foo, :foo= というのがある。
0150デフォルトの名無しさん2009/08/17(月) 00:56:53
>>143
http://codepad.org/QlJCG6Ry
できました。ありがとう
0151デフォルトの名無しさん2009/08/17(月) 03:31:00
リスコフなんて糞くらえ。
ってか変数に型が無い言語で継承するって、実装の継承しか無いんだから
undefでも好き勝手にしたらいいと思う。

え?俺OO分かってない?
0152デフォルトの名無しさん2009/08/17(月) 04:29:32
>>147の要求の時点でLSP無視なんだから何やっても構わんよ
特定のメソッドの有無に意味を持たせようとすること自体が邪悪
0153デフォルトの名無しさん2009/08/17(月) 10:10:02
> Rubyにアクセサは存在しない
このへんは後々尾を引いてくると推測
0154デフォルトの名無しさん2009/08/17(月) 10:15:23
特定のメソッドの有無こそがオブジェクトの本質ぢゃないか。
0155デフォルトの名無しさん2009/08/17(月) 10:20:24
Rubyにアクセサは存在しないっつーか、
アクセサは、作るもの(用意するもの)なんじゃねーの?
あるメソッドがアクセサかどうかというだけで。
0156デフォルトの名無しさん2009/08/17(月) 10:45:20
アクセサというシステム的なナニカがあるわけではない、という程度の意味なような気もする

たとえば、Object#accessors でアクセサメソッドの一覧が返るとか
def hoge と def hoge= と attr_reader :hoge と attr_writer :hoge を全部定義しても
hoge() と hoge=() と hoge と hoge= で全部別個に使い分けが可能だとか
0157デフォルトの名無しさん2009/08/17(月) 14:34:53
リファレンスマニュアル FAQより

http://www.ruby-lang.org/ja/man/html/FAQ_A5E1A5BDA5C3A5C9.html

> 5.4 オブジェクトのインスタンス変数を外から参照できますか
> 直接はできません。あらかじめそのオブジェクトにインスタンス変数を参照するためのメソッド (アクセサと言います)
> を定義しておく必要があります。たとえば以下のようにします。

メソッドとアクセサは同じレベルの概念じゃないだろ
0158デフォルトの名無しさん2009/08/17(月) 14:44:57
大変だ、>>157だけが明後日の方向に
0159デフォルトの名無しさん2009/08/17(月) 15:05:41
アクセサってのはインスタンス変数へのアクセスを提供する何かであって
それが言語によってメソッドだったり属性参照式だったりするということじゃないの?
0160デフォルトの名無しさん2009/08/17(月) 15:35:17
>>158
おまえが理解できてないだけだ
0161デフォルトの名無しさん2009/08/17(月) 16:08:04
だからさ、>>148が悪いんだよ
0162デフォルトの名無しさん2009/08/17(月) 16:11:43
「Rubyにはアクセサという機構は存在せず、メソッド定義で代用する」
「定義の簡便のためにattr*系のメソッドがあるが、メソッド定義以上のことを期待するのは勘弁してください」

こう書けばよかったんだな
0163デフォルトの名無しさん2009/08/17(月) 16:44:41
>>162が想定する他の言語のアクセサってどんなの?
0164デフォルトの名無しさん2009/08/17(月) 16:46:42
アクセサが言語レベルで実装されてる言語なんてあるのか?
0165デフォルトの名無しさん2009/08/17(月) 16:48:22
def attribute=(value)

これって明らかにアクセサ用の機能だろ
0166デフォルトの名無しさん2009/08/17(月) 16:58:35
初心者ですがまったく話がわかりません
0167デフォルトの名無しさん2009/08/17(月) 17:01:10
確かに、メソッド名の最後に(だけ)は = が使えるとか、
obj.foo = bar が obj.foo=(bar) の意味である、だとか、
言語レベルの機能だよな。
0168デフォルトの名無しさん2009/08/17(月) 17:34:33
テストファイルで Enumerable を拡張してるんですが、これってテストにならないですよね?
0169106.79-160-162.customer.lyse.net2009/08/17(月) 17:53:40
自動焼人 ★ = 自動保守 ◆KAWORUKOFI = 自動保守#K9K?_D[L

名言集 その3
『いつもサボってばかりのキャップがウゼえ』

http://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
> 大変って言うか
> 毎日、報告されたのを見て、判断して、処理して、完了報告して、以下ループ。
> ちょっとでもミスすると、普段は作業もしてないキャップさんたちがさんざん文句言ってきて
> その言いわけを考えないと、キャップはく奪されたりアカウント凍結されたりするから
>
> 登録されてから一年以上経って、やっといいたいこと言えるようになってきたよ。



----------------------------------------------
この自動焼人 ★メールマガジンの配信停止をご希望される方は
http://qb5.2ch.net/test/read.cgi/sec2chd/1250169591/
にて自動焼人 ★までご連絡ください
0170デフォルトの名無しさん2009/08/17(月) 20:35:18
Array#include?だと指定した値と等しい要素がある場合trueを返しますけど、
等しい要素数を返すにはselectで条件を満たす要素だけとりだしてそれのsizeを調べるしかないでしょうか?
0171デフォルトの名無しさん2009/08/17(月) 20:52:31
>>170
その通りです。

便乗して質問させて下さい。
include? ってなんで Array で再定義してるんでしょうか?
Enumerable#include? とは違う実装になってるんでしょうか?
0172デフォルトの名無しさん2009/08/17(月) 20:53:08
まあ基本的にはそう
grepしてもいいが、「一致する要素の数」というのを直接返すメソッドはない
というかもしあったとしても内部でfind_allしてsize求めるはず
0173デフォルトの名無しさん2009/08/17(月) 20:58:51
例として非nilを数える場合
[true,false,1, "a",nil,nil].inject(0){|r, i| r += (!i.nil?) ? 1 : 0}

書いてみたはいいけど汚いなぁ
0174デフォルトの名無しさん2009/08/17(月) 21:11:12
>>171
rb_ary_includesが遅いと困るからきちんと作ったのだと推測
0175デフォルトの名無しさん2009/08/17(月) 21:16:15
NTFSの副ストリームって対応してる?
0176デフォルトの名無しさん2009/08/17(月) 21:19:19
>>174
なるほど。Array#include? をネイティブに書いて少しでも性能をだそうとした
ということですね。

でも。。今 ruby-1.9.1-p129 の array.c 見てみたんだけど、すごく当たり前な
実装なんですね。
この程度でもネイティブ化すると結構速くなるものなんですかね?
0177デフォルトの名無しさん2009/08/17(月) 21:22:49
わざわざEnumerableで定義したのを探してアクセスする時間が惜しいからそばに入れたんじゃね

>>175
Windows版Rubyとして何かをしたという話は聞かない
コンパイルしたときに自動で何かがどうかできるのなら対応してるかも
0178デフォルトの名無しさん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')
0179デフォルトの名無しさん2009/08/17(月) 21:44:20
>>173
低脳死ねカス
[true,false,1, "a",nil,nil].cmplact.length
0180デフォルトの名無しさん2009/08/17(月) 21:49:39
>>179
低能氏ねカス
s/cmplact/compact/
0181デフォルトの名無しさん2009/08/17(月) 21:54:05
cmplact?
0182デフォルトの名無しさん2009/08/17(月) 21:54:11
length厨はマジでどうにかならんものか
0183デフォルトの名無しさん2009/08/17(月) 21:58:14
size の方が好きなのけ?
0184デフォルトの名無しさん2009/08/17(月) 21:58:26
>>170
sizeを調べる「しかない」わけではない。
cnt = 0
array.each {|x| cnt += 1 if some_condition(x) }
puts cnt
あまり美しくないけど、どうぞ。
0185デフォルトの名無しさん2009/08/17(月) 22:12:45
質問です。
SGEをダウンロードしたいのだけれども、
http://www.etek.chalmers.se/~e8cal1/sge/index.html
がNOT FOUNDになります。
いま、SGEはどこでダウンロードできますか?
■ このスレッドは過去ログ倉庫に格納されています