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

Ruby初學者スレッド Part 9

■ このスレッドは過去ログ倉庫に格納されています
0001紅寶石2006/11/21(火) 08:33:42
まずはマニュアル

マニュアル
http://www.ruby-lang.org/ja/man/
Ruby FAQ
http://ruby-lang.org/ja/man/?cmd=view;name=Ruby+FAQ
逆引きRuby
http://www.namaraii.com/rubytips/
Ruby リファレンスマニュアルの Windows HTML Help版
http://elbereth-hp.hp.infoseek.co.jp/ruby.html
Rubyリファレンスマニュアル刷新計画
http://doc.loveruby.net/


前スレ
Ruby初心者スレッドPart8
http://pc8.2ch.net/test/read.cgi/tech/1159424939/

>>2-10
0680デフォルトの名無しさん2006/12/28(木) 10:17:37
>>679
Mutexで排他ロックすると、うまくいきました。
Rubyの1行の文はアトミックだと勘違いしていました。
0681デフォルトの名無しさん2006/12/28(木) 12:47:22
>Rubyの1行の文はアトミックだと勘違いしていました

すげえ勘違いのしかた。一体何をどう考えたら1行の文が...
0682デフォルトの名無しさん2006/12/28(木) 16:44:57
>>681
調べてみると、同じような話が出ていました。
ttp://www.atdot.net/~ko1/w3ml/w3ml.cgi/yarv-dev/msg/651
0683デフォルトの名無しさん2006/12/28(木) 18:45:23
678はむしろ、単純にロックし忘れてたんだろ。
もしアトミックだと勝手に想定して、あえてロックしなかったのなら性格に問題ありそう。
0684デフォルトの名無しさん2006/12/28(木) 19:05:46
>>683
Rubyコミュニティーの気持ち悪さを表現した、素晴らしいレスですね
0685デフォルトの名無しさん2006/12/28(木) 19:32:48
net/httpを利用してhtmlを読む際に
body部にてsrcで呼ばれたjavascriptを実行することは可能でしょうか?

もしあればご教授のほど宜しくお願いします。
0686デフォルトの名無しさん2006/12/28(木) 19:50:55
>>685
誰がJavascriptを解釈するの?
0687デフォルトの名無しさん2006/12/28(木) 20:16:04
>685
JavaScriptは普通ブラウザが解釈し実行する
クライアントサイドのスクリプト。

だから単純にscriptタグを出力すればOK。

…JScriptインタプリタを使って
CGIとして実行するなら話は全く別だが。
0688デフォルトの名無しさん2006/12/28(木) 20:37:16
意味わかってないなら答えないほうがいい
0689デフォルトの名無しさん2006/12/28(木) 20:43:55
性格の悪いひとたちばかりですね
0690デフォルトの名無しさん2006/12/28(木) 22:38:43
頭の悪いひとたちにはそう見えるらしいですよ
0691デフォルトの名無しさん2006/12/28(木) 23:54:11
プログラム書いたら、
Segmentation fault
となりました。
これってどういう意味ですか。
0692デフォルトの名無しさん2006/12/29(金) 00:13:13
>691
Segmentationに関するfaultだよ。字の通り見たまんま。

解消する方法は当の「プログラム」と実行環境が分からんと誰も答えようがないと思われ
0693デフォルトの名無しさん2006/12/29(金) 00:20:10
>>691
Rubyのバグをたまたまそのプログラムが突いてしまったということ
あるいは外部ライブラリとつなげたものならそれが悪さしてる可能性もある
前者なら報告した方がいい希ガス
0694デフォルトの名無しさん2006/12/29(金) 00:22:17
>>692-693
レス、ありがとうございます。
windows2000の上で動かしている
VineLinuxの中でOpenGLと
一緒に使っています。
0695デフォルトの名無しさん2006/12/29(金) 05:04:53
バグをついたのが「たまたま」なら、
ちょっとプログラム変更すれば
動くようになるんじゃない?
0696デフォルトの名無しさん2006/12/29(金) 05:22:48
そうしてみます。
0697デフォルトの名無しさん2006/12/29(金) 15:32:30
1.8.5になってからワンライナーが書きづらくなったなぁ。

>ruby -ve "puts '%02X' % 10"
ruby 1.8.5 (2006-12-25 patchlevel 12) [i386-mswin32]
-e:1: warning: too many arguments for format string
X #=> 本当は 0A と表示されて欲しい

% + 数字 がまずいみたいだね。
0698デフォルトの名無しさん2006/12/29(金) 15:35:53
およ、うちではこうなるが。

% ruby -ve "puts '%02X' % 10"
ruby 1.8.5 (2006-12-25 patchlevel 12) [i386-darwin]
0A
0699デフォルトの名無しさん2006/12/29(金) 17:19:20
>>697
WindowsXP+CMD.EXE+ASR1.8.5.5
だと
0A
ですよ。
VMWare上なんでコピペできんが。
環境はどういう感じ?
07006972006/12/29(金) 20:07:30
>>698-699
ごめん。Rubyは悪くなかった。

cmd.exeで実行したら正しい結果が得られた。
nyacus上で実行してたんだけど、nyacusが%xxを展開してたみたいだ。
07016872006/12/30(土) 04:35:57
>688
ん、俺何か勘違いしてる?
真面目に何を間違えたのか判らん
0702デフォルトの名無しさん2006/12/30(土) 11:40:57
急に「なんかわかってるフリ」をしたくなっただけでしょwきにすんな
0703デフォルトの名無しさん2007/01/02(火) 02:05:47
しかし、PHPは言語として(ry
0704デフォルトの名無しさん2007/01/02(火) 02:55:33
洗練されている?
0705デフォルトの名無しさん2007/01/02(火) 06:29:32
PHPは言語として最悪だろヴォケ
0706デフォルトの名無しさん2007/01/02(火) 06:35:27
Perlよりはマシw
0707デフォルトの名無しさん2007/01/02(火) 08:37:25
Perlは無理やり色々機能追加せず
昔のままシンプルだったらよかったのにね。
0708デフォルトの名無しさん2007/01/02(火) 08:55:06
Perl も PHP も言語として最悪と分かっていつつも
使わざるを得ない現状が何ともね。
0709デフォルトの名無しさん2007/01/02(火) 10:11:00
Rubyに乗り換えずにPerl使い続けてる奴って、
ラリーのいう「無精」が悪い方に出たクズとしか言い様がないな。
0710デフォルトの名無しさん2007/01/02(火) 10:28:34
まあ、Rubyが下手にPascalに近い文法を採用したから、C/C++修得者の受けが悪いという気はする。
C/C++修得者にとっては、PHPの方が受け入れやすいよなやっぱり。
0711デフォルトの名無しさん2007/01/02(火) 10:57:07
Delphi使ってる俺から言わせると、RubyがPascalみたいだなんて、到底思えないが。
C文法しか使えない(というか、こだわってる)奴のたわごとにしか聞こえないよ
0712デフォルトの名無しさん2007/01/02(火) 10:59:25
すげえたわごと来た
0713デフォルトの名無しさん2007/01/02(火) 11:16:16
まぁ、「〜にしか」見えなかったり聞こえなかったりするときは
「仮説が一つしか浮かばない自分の思考はどこかで猪突猛進してる」と思ったほうがいいかな
0714デフォルトの名無しさん2007/01/02(火) 12:05:10
PHPはLightweight Lesser Language。
でも実際は言語なんかどうでもよくて
研鑽しないプログラマの存在のほうが
現実には悪な場合が多い。
0715デフォルトの名無しさん2007/01/02(火) 12:11:48
>>714
perlと一緒ジャン
やっぱ、Ruby使ってる人は、勉強する人ばかりだよね

>>715
はいはい、選民思想乙
07167102007/01/02(火) 14:21:36
>>711
いや、俺もデスクトップアプリはDelphiもBCBも使うからそう思うんよ。
例外処理の書き方とかさ
0717デフォルトの名無しさん2007/01/02(火) 14:44:41
>>716
711様がC文法しか使えない奴のたわごとにしか聞こえないって言ってるんだから
お前はC文法しか使えない奴なんだよ。ごまかすなクズ。
0718デフォルトの名無しさん2007/01/02(火) 14:46:02
Pascalみたいだってのはendがあるからでしょ。
そこからちょっとでも踏み込んで調べてみたら、
そんな印象なんか吹き飛ぶだろうに。
0719デフォルトの名無しさん2007/01/02(火) 16:04:02
なんでそんなにPascalの影響を否定するのに必死なんだこいつら
0720デフォルトの名無しさん2007/01/02(火) 16:07:12
C文法しか使えない奴のたわごとにしか聞こえないからだよ。
0721デフォルトの名無しさん2007/01/02(火) 18:32:49
PHP で何気なく
while(($c = fgetc($fp)) != EOF){
hogehoge;
}
って書いたら無限ループw
0722デフォルトの名無しさん2007/01/02(火) 18:36:06
Ruby で時々
if(fugafuga){
}
って書いて唖然とするときがある
0723デフォルトの名無しさん2007/01/02(火) 18:55:19
うっかりなら
if
  hogehoge
else
  fugafuga
endif
これやってしまう
0724デフォルトの名無しさん2007/01/02(火) 19:16:01
PascalがのブロックがCとRubyどっちに近いかっつーと
断然Cに近いんだがなぁ
0725デフォルトの名無しさん2007/01/02(火) 19:38:17
Pascalはencに.が付いたり付かなかったり
行末に;が付いたり付かなかったり
ソースを一回書いて終わりならいいんだけど
後からのメンテに面倒臭さを感じる
コンパイラに人間があわせてる感じがする
0726デフォルトの名無しさん2007/01/02(火) 19:40:57
個人的にはPascalの書きにくさを解消したのがCだと思ってるけど
0727デフォルトの名無しさん2007/01/02(火) 19:43:11
そのうち
if 〜 begin
end else begin
end
って書くようになったりするw
0728デフォルトの名無しさん2007/01/02(火) 20:10:13
そいつぁ〜重症だなw
0729デフォルトの名無しさん2007/01/02(火) 20:36:36
Pascalコンパイラに人間が合わせてる最たる物が、
「1パスでコンパイル」というのを守るための
forwardかも。
0730デフォルトの名無しさん2007/01/02(火) 20:41:37
RubyのendはPascalじゃなくてEiffelの影響なんだけどね
0731デフォルトの名無しさん2007/01/02(火) 20:47:13
>>719
全然否定していない。ただPascalの影響を言うやつのほとんどが
底の浅い理解をしているということなんだ。君みたいにな。
Pascalの影響はある。だが君が思っているところにではない。
720以降の議論の意味わからないだろ、君には。
0732デフォルトの名無しさん2007/01/02(火) 21:01:08
>>731
どこにPascalの影響があるの?
おれPascalやってたけど、Rubyにその影響をみたことないなあ
0733デフォルトの名無しさん2007/01/02(火) 21:04:23
endがあるからpascalみたい。ただそれだけの話
0734デフォルトの名無しさん2007/01/02(火) 21:27:51
なんでendにしたの?
0735デフォルトの名無しさん2007/01/02(火) 21:53:53
>>734
>>730 じゃね?

0736デフォルトの名無しさん2007/01/02(火) 22:05:16
>>730
マジスカ
0737デフォルトの名無しさん2007/01/02(火) 22:29:19
http://www.ruby-lang.org/ja/man/?cmd=view;name=Ruby%CD%D1%B8%EC%BD%B8#E
0738デフォルトの名無しさん2007/01/02(火) 22:30:48
これもか。
http://jp.rubyist.net/magazine/?0009-Legwork
0739デフォルトの名無しさん2007/01/02(火) 22:56:18
個人的には try catch よりも begin rescue の方が好き
0740デフォルトの名無しさん2007/01/03(水) 01:18:22
>725
Pascal の ; は俺にとってはCより解りやすい
C言語の if の

if(式) 文; else 文;

なんてかなり違和感だもん
何で一つの文にセミコロン2つあるんだよって感じ
0741デフォルトの名無しさん2007/01/03(水) 01:34:07
> if(式) 文; else 文;
文が二つ入っとりますが……
0742デフォルトの名無しさん2007/01/03(水) 02:37:04
ごめん説明不足だ、1つのif文ね。
0743デフォルトの名無しさん2007/01/03(水) 02:59:46
一行?
0744デフォルトの名無しさん2007/01/03(水) 04:24:43
いや、Pascal だから
if(式) 文 else 文 end;
までで一文だっていう意味かと。
ただ、結局 >>727 みたいなことになりがちなので
C で改善されてると言えると思うんだけどなぁ。
0745デフォルトの名無しさん2007/01/03(水) 09:24:12
Delphi厨だが、ifは
if 式 then 文;
if 式 then 文 else 文;
のどちらかで一文だね
elseの前にセミコロン入れると前者として扱われ
「else単独の構文はない」ため文法エラー

ブロックは begin 文; 文;... end

セミコロンは文末
ピリオドはコードの末尾

これに慣れると実際C言語のelseは気持ち悪いな



いい加減慣れたが。そもそもスレ違いだが。
0746デフォルトの名無しさん2007/01/03(水) 14:10:39
>>745
> セミコロンは文末
Pascalではセパレータだから文の間。

だからこそ
> ブロックは begin 文; 文;... end

endの前には入らないわけだ。
0747デフォルトの名無しさん2007/01/03(水) 19:56:28
すれ違いだけど、
Pascalのコード色々見てると
if ... begin
(単|複)文;
end else begin
(単|複)文;
end;
っていう書き方結構多いような気がする。
みんなコード書いてるうちに
;を付けたり付けなかったりするのが面倒になるんだと思う。

0748デフォルトの名無しさん2007/01/03(水) 20:20:46
>747
それはC言語でも同じでは
0749デフォルトの名無しさんNGNG?2BP(2)
質問させてください。
Perlでいう、Tie::File 相当のモジュールってRubyにありますでしょうか?

単に配列に変換する程度の機能でしたら、自分でちょろっと
書いた方が早いですが、flockやbufferingまでやってくれるものが
欲しいのです。

まぁSQLite使えという声もあるのですが…(汗
0750デフォルトの名無しさん2007/01/04(木) 04:55:50
>>749
Tie::Fileというのがどんなものかを説明したほうがいいと思う。
0751デフォルトの名無しさん2007/01/04(木) 06:53:03
http://fleur.hio.jp/perldoc/mix/lib/Tie/File.html
0752デフォルトの名無しさん2007/01/04(木) 10:32:24
あんまりちゃんと読んでないけど、ファイル書式を気にしなければ PStore か YAML::Store でできそうな気がする。
http://www.ruby-lang.org/ja/man/?cmd=view;name=PStore
0753デフォルトの名無しさん2007/01/04(木) 18:26:11
たとえば、私だと、HSPやPHPに対する「悪意」を読み取られたことがある。
0754デフォルトの名無しさん2007/01/05(金) 01:49:27
>>753
本スレでやれ
0755デフォルトの名無しさん2007/01/05(金) 15:31:16
>>754
本スレでもやらんでいい
0756デフォルトの名無しさん2007/01/07(日) 11:02:52
数値かそうじゃないかを判別するメソッドがあったら教えてください
integer?のFloatでもtrueを返すような物を探しています
0757デフォルトの名無しさん2007/01/07(日) 11:07:45
ヒント
1.class.ancestors
1.0.class.ancestors
0758デフォルトの名無しさん2007/01/07(日) 14:44:03
>756
ヒント
・クラス間の親子関係
・Object#is_a? / Object#kind_of?
0759デフォルトの名無しさん2007/01/08(月) 02:11:33
RDoc::usage の出力先を標準エラー出力に変更するには
どのような指定をすればよいでしょうか?
0760デフォルトの名無しさん2007/01/08(月) 03:29:47
* 標準出力を標準エラー出力につけかえる
* RDoc::usageを再定義する

のどちらかだと思う
0761デフォルトの名無しさん 2007/01/08(月) 04:02:09
Rubyというやつに挑戦しようと思い検索したところvs2005stdにそのままインストール出来る
ようなので、したのですがRubyProjectを立ち上げて、新しい項目としてtest.rbという名前にし
print 123
とだけ打って実行してみたのですが、まったく駄目です。
というか、c/c++を今まで勉強してきたのですが今回rubyの入門サイトをgoogleで検索して
一通りみたのですがさっぱりわからず、mainに当たる部分はどこなんだ?
という、たぶんスクリプト言語?ってのをやってる人にとっては「何いってんだ?」という
質問かもしれませんが、できたら何をどうして、どのページを参考にしたら良いのか
教えていただきたいです。
お願いします。
0762デフォルトの名無しさん2007/01/08(月) 04:37:32
ttp://www.google.com/search?num=50&lr=lang_ja&ie=utf8&q=vs2005std
おー結構あるな

それはいいとして、お前はこれまで一体何をやってきたんだ
何も身についてないじゃないか
0763デフォルトの名無しさん2007/01/08(月) 04:47:52
>>761
何がどうダメなのかちゃんと書いたほうがいいんじゃないか。
一体どういう状況なのか全く読めないぞ。それと、そのスクリプト自体は間違ってない。
0764デフォルトの名無しさん2007/01/08(月) 04:49:59
Visual Studio 2005スレ Part18
http://pc10.2ch.net/test/read.cgi/tech/1167788121/72

72 名前:デフォルトの名無しさん[sage] 投稿日:2007/01/08(月) 04:02:57
Rubyというやつに挑戦しようと思い検索したところvs2005stdにそのままインストール出来る
ようなので、したのですがRubyProjectを立ち上げて、新しい項目としてtest.rbという名前にし
print 123
とだけ打って実行してみたのですが、まったく駄目です。
というか、c/c++を今まで勉強してきたのですが今回rubyの入門サイトをgoogleで検索して
一通りみたのですがさっぱりわからず、mainに当たる部分はどこなんだ?
という、たぶんスクリプト言語?ってのをやってる人にとっては「何いってんだ?」という
質問かもしれませんが、できたら何をどうして、どのページを参考にしたら良いのか
教えていただきたいです。
お願いします。
0765デフォルトの名無しさん2007/01/08(月) 05:02:07
マルチはどうでもいいが、VisualStudio2005用のRubyプラグインがあるんすか?マジ?
0766デフォルトの名無しさん2007/01/08(月) 05:13:06
検索すればいいと思うよ。
0767デフォルトの名無しさん2007/01/08(月) 06:20:07
Ruby.NET
0768デフォルトの名無しさん2007/01/08(月) 08:24:34
>>761
Rubyというやつとvs2005stdというやつの間には何の関係もない。
07697612007/01/08(月) 09:13:05
いや、でも
http://www.sapphiresteel.com/IMG/pdf/rubyinsteel_userguide.pdf
のページにvs2005std以上だと使えてインストールの仕方が書いてあるんですが
まぁ、興味本位で、Rubyに触ってみたく検索したら環境を統合できそうだったので
インストールの仕方見ながらやって、環境は統合され認識もされるけど
コンパイル実行の段階で、エラーに、/Cや-rといったリンカ関係か〜?と思うような
メッセージしかでず、結局、初心者の自分には、何が足りないのかが分からずで
実行できないままで、もうめんどくさいので全部いったん消して、普通にRuby落として
PATH通して、なんかのフリーのエディタ使ってやってみます。
ずっとC/C++ばっかやっててJAVAはやったけど重いし好きじゃないし
C#はインテリセンスがうっとおしいしってな具合でそれら以外の言語をちょっと
さわりたくなったわけで・・・
まぁ、その、あれだ
マルチしてすんませんでした。
0770デフォルトの名無しさん2007/01/08(月) 10:18:01
>>761
Rubyはインタプリタ言語です コンパイルは不要です
Rubyに限らず、動的な言語にはコンパイラーはありません
ネットでインタプリタ言語を少し調べてみてください
0771デフォルトの名無しさん2007/01/08(月) 10:48:25
ソース解析して構文木つくるのも、コンパイルと言えばコンパイルだけれども…
0772デフォルトの名無しさん2007/01/08(月) 10:58:02
>>761が言ってるのは、Railsの開発環境だな
0773デフォルトの名無しさん2007/01/08(月) 11:30:04
>>769
> C#はインテリセンスがうっとおしいしってな具合でそれら以外の言語をちょっと

いやそれ言語の機能じゃないしw
0774デフォルトの名無しさん2007/01/08(月) 11:40:33
>ずっとC/C++ばっかやっててJAVAはやったけど重いし好きじゃないし
>C#はインテリセンスがうっとおしいしってな具合でそれら以外の言語をちょっと
>さわりたくなったわけで・・・

あほが
0775デフォルトの名無しさん2007/01/08(月) 13:50:53
Javaが遅いと嘆く奴 ≒ Swing使用者 + JavaのI/Oはデフォでバッファリングしないのを知らない奴
0776デフォルトの名無しさん2007/01/08(月) 14:00:59
さすがRuby使いはキチガイだ
0777デフォルトの名無しさん2007/01/08(月) 15:11:22
>>769
なぜ、/C や -r がリンカ関係なんて発想が出てくるんだ?
0778デフォルトの名無しさん2007/01/08(月) 16:19:01
Matzしつけー
0779デフォルトの名無しさん2007/01/08(月) 16:56:45
Python最高!(by秋山)
■ このスレッドは過去ログ倉庫に格納されています