トップページ⇒tech
984コメント268KB

Rubyについて Part47

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2012/01/16(月) 13:15:31.00
プログラミング言語Rubyについての、初心者向けスレです。質問・要望・雑談などどうぞ。
質問するときは、OSやRubyのバージョン、エラーメッセージを書いたほうがいいお

前スレ
Ruby 初心者スレッド Part 46
http://hibari.2ch.net/test/read.cgi/tech/1317790320/


るりまサーチ (リファレンス検索)
http://rurema.clear-code.com/

Rubyist Magazine - るびま
http://jp.rubyist.net/magazine/

逆引きRuby
http://www.namaraii.com/rubytips/
0253デフォルトの名無しさん2012/05/13(日) 18:37:41.17
Luaの低速な場合ですらRubyよりは速そうだw
0254デフォルトの名無しさん2012/05/13(日) 19:12:02.08
比較して結果示して言えよ
0255デフォルトの名無しさん2012/05/13(日) 20:12:01.51
いままで組込用途ではLuaが調子にのってたけど、mrubyの登場で完全勝利だね
0256デフォルトの名無しさん2012/05/13(日) 20:35:45.22
現状では月となんとやらレベルの差があるのに何言ってるんですかもう
0257デフォルトの名無しさん2012/05/13(日) 21:12:19.97
それは性能だけの話だろ?ほんと視野の狭いやつだなw
言語的には、あんなキモオブジェクト指向、Rubyと比べるまでもない。
0258デフォルトの名無しさん2012/05/13(日) 21:17:07.40
Luaのどのへんがキモオブジェクト指向なのか詳しく
0259デフォルトの名無しさん2012/05/13(日) 21:39:38.96
>>243
1.8.6の頃からなら同じ場所にあると思うのだが…
以前使ってたmswin32版って、具体的には何を使ってたの?
0260デフォルトの名無しさん2012/05/13(日) 21:45:28.57
妹がRailsで掲示板的なものなら作れるようになってきたぞ
0261デフォルトの名無しさん2012/05/13(日) 21:52:26.59
だからお前はまず妹をうpするところから始めろよ
0262デフォルトの名無しさん2012/05/13(日) 21:56:19.91
>>259
お前いい加減なこと言ってんじゃねえぞ
ふざけんな
0263デフォルトの名無しさん2012/05/13(日) 22:30:04.23
>>262
mswin32版って言えばここのことじゃないの?
ttp://www.garbagecollect.jp/ruby/mswin32/ja/
ここは1.6系辺りからだいたい似たようなデザインのサイトで
長いこと(1.8.6ならとっくに)Ruby公式からリンク張られてると思うのだが…

んで、それ以外にもwin用Rubyはあるんだから
もし違う環境のことを指してるなら
以前はどんな環境を使ってたのか教えてくれ、と言ってるんよ
0264デフォルトの名無しさん2012/05/13(日) 22:40:22.16
>>263
Windows版を必要としないから無いから
そこのサイト初めて見たけど、1.9.3無くてワロタ
最新版って1.9.3のことだろ?
0265デフォルトの名無しさん2012/05/13(日) 22:41:33.70
>>264
ごめんそういうことか、すまん悪かった…
0266デフォルトの名無しさん2012/05/13(日) 22:41:37.49
なんで一瞬で見つかるのに、お前それが出来ないの?

「Ruby 1.9.3」登場、Windows向けインストーラー「RubyInstaller」にも新版が追加
http://www.forest.impress.co.jp/docs/news/20111101_487883.html
0267デフォルトの名無しさん2012/05/13(日) 22:44:03.52
Rubyのサポートチームが
貧弱だって分かるよね。
0268デフォルトの名無しさん2012/05/13(日) 22:44:58.97
てめぇの情報検索スキルの無さを棚に上げて何言ってんだ?
0269デフォルトの名無しさん2012/05/13(日) 23:02:21.88
LuaはJITがあるからMRIじゃ勝負にならないよな
JRubyかRubiniusの熟成を待つしかないかね
0270デフォルトの名無しさん2012/05/13(日) 23:13:25.33
Windows版Rubyの最新版は1.8.6です(キリッ)
0271デフォルトの名無しさん2012/05/13(日) 23:18:04.46
Windowsとかローソンの情報端末とかATMでしか使った事ないわw
あと案内板とかなwフリーズしてたけどw
0272デフォルトの名無しさん2012/05/13(日) 23:19:07.32
>>266
だからそれmingw32版だから
0273デフォルトの名無しさん2012/05/13(日) 23:20:28.90
自分でビルドすればええやん
0274デフォルトの名無しさん2012/05/13(日) 23:29:14.03
ASRってもう出てないんだっけ。
あれmswinだよね?
0275デフォルトの名無しさん2012/05/14(月) 00:35:35.18
なんでビルドしてくれる人いないのさ!
そんなにRubyは使われてないの?
0276デフォルトの名無しさん2012/05/14(月) 00:37:32.64
うん。使われてない
だからPython使ったほうがいいよ
0277デフォルトの名無しさん2012/05/14(月) 00:55:35.13
windowsで使うこと考えると
pythonの方が安心感があるのは確か
0278デフォルトの名無しさん2012/05/14(月) 01:09:58.24
相変わらず"windows"という文字列を食わせると発狂しちゃうんだなここのおっちゃんたちはw
0279デフォルトの名無しさん2012/05/14(月) 08:16:15.30
ということにしたいのですね
0280デフォルトの名無しさん2012/05/14(月) 08:24:03.68
>>270
流石にそれ話からズレてんぞ
0281デフォルトの名無しさん2012/05/14(月) 08:45:36.26
http://www.artonx.org/data/asr/
0282uy ◆YJCoHSVeEE 2012/05/14(月) 18:09:56.68
色々、大切なものを思い出してしまったぜ
この言語を作ってくれたMatzに感謝をする
そして今までム板、マ板に多大なる迷惑をおかけした
ここにお詫び申し上げる

俺はあるものを守る為に力をつけたはずだった、壊す為ではなく
こんな俺でも、こんなクズの人生ひとつで何かを守れるならば上等
0283デフォルトの名無しさん2012/05/14(月) 18:51:15.70
mrubyってちっとも「軽量」じゃないな
0284デフォルトの名無しさん2012/05/14(月) 18:59:20.26
何を基準にして?
0285デフォルトの名無しさん2012/05/14(月) 19:19:17.64
言語機能は一切削ったりしません、がコンセプトだからあんなもんだろ
0286デフォルトの名無しさん2012/05/15(火) 00:42:18.99
そりゃ言語仕様を削ったらRubyである必要性もよく分からなくなるだろうし
0287デフォルトの名無しさん2012/05/15(火) 08:02:14.18
class O
attr_accessor :x
end
o = O.new
o.x = 2
x = 2
def draw x
p x
end

draw( x -40 )
draw( o.x-40 )
draw( o.x - 40 )
draw( o.x- 40 )
draw( o.x -40 )


この中で1個だけエラーでますとかいってすぐ答えられる奴いんの?
0288デフォルトの名無しさん2012/05/15(火) 08:25:45.43
http://ideone.com/T8GGV
     ____    ━┓
   /      \   ┏┛
  /  \   ,_\.  ・
/    (●)゛ (●) \
|  ∪   (__人__)    |
/     ∩ノ ⊃  /
(  \ / _ノ |  |
.\ “  /__|  |
  \ /___ /
0289uy2012/05/15(火) 10:25:10.76
考え込むほどのことでもないよ

o.x -40
↑で
o.xが変数じゃなくてメソッド扱いされて
o.x(-40)

こんな解釈になってるんだろ
prog.rb:15:in `<main>': wrong number of arguments (1 for 0) (ArgumentError)
↑訳
プログラム、rb15 main
o.xは、1個の引数が渡されています、0個の引数なのに(笑)ッププw  その理はアルグメントエラー()

Rubyに変数はメソッド(キリッ)
とかいう設計が仇になった瞬間だった
どうみても設計ミスです本当にありがとうございました!!!!
どうするの?ネェネエコレドウスルノ???Rubyは未来永劫 o.x -40 とかかけないのー?別にいいですけどw
え?? でも四則演算はダメだけどこれは通るんだね
draw( o.x ^40 )
draw( o.x |40 )
     ____    ━┓
   /      \   ┏┛
  /  \   ,_\.  ・
/    (●)゛ (●) \
|  ∪   (__人__)    | プッギャアアアアアアアアアアアアアアアアアアアアアアアアアwwwwwwwwwwwwwwwwwww
/     ∩ノ ⊃  /
(  \ / _ノ |  |
.\ “  /__|  |
  \ /___ /
0290デフォルトの名無しさん2012/05/15(火) 10:40:10.01
アルグメントエラー……
0291デフォルトの名無しさん2012/05/15(火) 14:26:54.94
二項演算子の両端はくっ付けるか離すかで揃えるのが基本だから
まずそんなミスはしないと思うが
0292デフォルトの名無しさん2012/05/15(火) 14:28:20.19
ちなみに

o.x

が変数となることは絶対にないよ
変数っぽく見えるメソッドであることはあるけどね
0293uy 2012/05/16(水) 21:30:46.56
Rubyにデストラクタってないけど

いつ破棄されるか分からない、とあるタスク内で
生成したスレッドの破棄ってどうすればいいのか分からなくなった

クラス変数辺りにスレッド格納して次回のスレッド生成時の前に破棄とかになりそう
0294デフォルトの名無しさん2012/05/16(水) 21:32:37.51
nilでも突っ込んで放置しとけばええやん?
0295uy 2012/05/16(水) 21:36:41.50
>>293
何にnilを突っ込むの?

「とあるタスク」が破棄される直前までそのスレッドは必要
でも「とあるタスク」はいつ破棄されるか分からない

0296デフォルトの名無しさん2012/05/16(水) 21:49:28.69
>>295
んと、とりあえずタスクの意味を教えてくれるかな。
それを教えてくれれば回答できる可能性がある。
0297uy 2012/05/17(木) 06:57:44.26
Rubyでゲーム作ってて
ゲームでいうタスクシステムのタスクです
0298デフォルトの名無しさん2012/05/17(木) 09:19:04.52
流石に定番すぎて、もはや撒き餌にすらならんぞ、それは。
0299uy 2012/05/17(木) 09:48:51.04
あれ?
Thread::listで取得してみたらふるいスレッドなくなってた
もう動けばいいや
0300デフォルトの名無しさん2012/05/17(木) 21:57:37.49
rubyをゲームを作るのに使うんじゃなくて、ルビーでゲームを作るのはやめたほうが良いかもしれない
0301デフォルトの名無しさん2012/05/17(木) 22:32:00.48
ゲームが出来たらライブラリの制作者に知らせるとものっそ喜ばれると思う
0302uy2012/05/18(金) 02:08:32.03
>>300
もうファイル数40ソース総量5000行くらいかいたから止まれない
でも普通に作れてる

>>301
多分喜ばれないと思う


てかRubyでのゲーム開発環境作りさえ出来るならかなり良いと思うよ
2Dで派手なエフェクトつけないゲームならこれ以上の選択肢はないかな
情報がろくにないから多分環境作りが大変なだけ
ゲームプログラムとは別に、RubyとRuby周辺ツールに詳しくないと開発できないからなw
俺様はもしかしたらこのまま人柱になるのかもしれない
0303デフォルトの名無しさん2012/05/18(金) 02:23:52.86
あるメソッドの内部処理が「ダメだった」場合に空のオブジェクトを返すかnilを返すか自作例外を発生させるかの定まった回答はない
そのメソッドやクラスがどういう場面で使用されるか、をよく考えた上で自分で決めるしかない

B#keysが[]を返すのは、空のHashに対するHash#keysが[]を返すことからの類推と、
そのB#[]の作者が[]メソッドに照会の機能を持たせてるからだと思う
メソッドの戻り値の内容はこっちで吟味するからとりあえず配列を返しといて下さい、という
0304デフォルトの名無しさん2012/05/18(金) 02:50:18.50
#[key]でnilが返るのも#keysで[]が返るのもダメだったなんて意味じゃないんだが…
入ってると思ってたのに入ってなかったのは単に使い手が仕込んだバグだろjk
0305デフォルトの名無しさん2012/05/18(金) 03:30:11.67
>>302
RPGツクールはRubyで書けるぞ
0306uy2012/05/18(金) 03:40:43.63
でもそれ、ぷろぐらまーが使うものではないだろ
0307uy2012/05/18(金) 05:16:14.93
完成したゲームをライブラリ製作者に見せたら
ゴミを投げ込むなと怒られた f^_^;)
0308デフォルトの名無しさん2012/05/18(金) 08:32:36.09
つまりRPGツクールみたいにプログラムの上で動作するプログラムを書くのがスクリプトであるから
それそのものでゲームを作るのはDVDプレーヤーで動くゲームを作るみたいな事になるんじゃないか
0309デフォルトの名無しさん2012/05/18(金) 08:44:56.46
頓珍漢なこと言う前にSDLラッパーでも眺めてきたらどうか
0310デフォルトの名無しさん2012/05/18(金) 15:36:46.36
>>304
ダメ、の意味するところにもよるが、通常の返却値に使うデータがない状態は fault と言えるから間違ってはいまい
{ }.keys のときには Hash::Error::NoKey で止まってもよかったし、warn: xxx.rb(12) Hash has no keys と出力してもよかった
でも、それだと不便だから(という理由だけで)敢えて空の配列を返すことにしてるだけだろ
0311デフォルトの名無しさん2012/05/18(金) 21:57:25.37
>>310
keysとかいてたら普通は配列が返ってくると思わない?
なのにnilが返ってきたらイラッとこない?
おめー配列返す振りしてなにnilかえしてんだぶちまわすぞコルァってならない?
0312デフォルトの名無しさん2012/05/18(金) 22:20:47.35
null値返すよりnull object返せってオブジェクト指向の教科書にもよく書いてあるもんな。
0313デフォルトの名無しさん2012/05/18(金) 22:28:21.85
期待される機能は「キーの入った配列」が返ってくることだ
そのキー自体がなかったという”異常事態”の場合、返ってくるモノは配列でなくてもいい、という設計でもそれ自体は一向に構わない

実際問題として、ほとんどの場合、どこかで条件分岐はしなくてはならない
処理のどっかで空っぽになったんだから最終出力も無言で空っぽでいいじゃんという男前プログラムが必要とされる機会はそうそうあるもんではない
0314デフォルトの名無しさん2012/05/18(金) 22:33:26.17
>>313
ん。で?
0315デフォルトの名無しさん2012/05/18(金) 22:38:15.86
そもそも>>303の文脈がなさすぎる
コピペ厨はこれだから本気で困る
0316デフォルトの名無しさん2012/05/18(金) 22:44:19.70

サイトで証明書の警告がでるけど、リンク先怪しいサイト?
http://www.ruby-lang.org/en/downloads/
上のページの、
「For the latest instructions on installing rvm, check out the RVM installation page.」
のリンク先は、下のURLになっている。
https://rvm.beginrescueend.com/rvm/install/
ここにアクセスすると、httpsの証明書のエラーが出る。

Firefoxでは下記のエラー(警告)がでる。

This Connection is Untrusted
You have asked Firefox to connect
securely to rvm.beginrescueend.com, but we can't confirm that your connection is secure.
Normally, when you try to connect securely,
sites will present trusted identification to prove that you are
going to the right place. However, this site's identity can't be verified.

証明書まともに管理してないサイトってなんかアレだなぁ
0317デフォルトの名無しさん2012/05/18(金) 23:33:23.67
Ruby初めて勉強する場合ってRailsからやるほうがいいの?それともRails使わずに基本からやるほうがいいの?多言語の経験はある
0318デフォルトの名無しさん2012/05/18(金) 23:38:16.28
>>316
rvmのwayeのとこだが、自己書名証明書なんだね。
httpsにしただけでセキュアなつもりになっていると思われる。

まぁrvmなんてオワコンだし、スルーでよいよ。
0319デフォルトの名無しさん2012/05/18(金) 23:40:10.96
というか、いまはこっちだ。
こっちは検証可能な証明書になってる。

https://rvm.io/rvm/install

Comodoだけど…
0320デフォルトの名無しさん2012/05/19(土) 00:27:48.10
nilより空の配列返してくれた方がありがたい
0321デフォルトの名無しさん2012/05/19(土) 00:54:35.16
空の配列は真と評価されるから一律で空配列返されると困るお
0322デフォルトの名無しさん2012/05/19(土) 04:14:03.14
おごちゃんクソワロタw
0323デフォルトの名無しさん2012/05/19(土) 04:33:45.44
>>318
RVMってのは入れる必要ないってことね

Rubyはドキュメント関係がいろいろ貧弱と聞いてはいたけど
公式サイトでいきなり思い知らされた。
英語と日本語だけみても公式サイトの内容がぜんぜん違うし・・・
0324デフォルトの名無しさん2012/05/19(土) 08:01:34.76
ていうかrvmなんてcrubyのインタプリタ開発陣はほとんど関知してないプロダクト。
3rdパーティーって書いてある通り、一応リンク書いておくけどそれ以上は知らんよ、
ということなんだろう。
0325デフォルトの名無しさん2012/05/19(土) 08:08:19.83
自分たちのサイトの情報くらい更新せえよ、という話だろう
リンクが古いから変なことになってる
現在のRVMの公式サイトは結構前から>>316ではなく>>319の https://rvm.io/ だ
追従できないならそもそも載せるなと
0326デフォルトの名無しさん2012/05/19(土) 09:08:08.82
>>317
RubyとRailsは別の言語として覚えたほうが早いかと
Railsをやりたいのか、Rubyをやりたいのかで考えれ
0327デフォルトの名無しさん2012/05/20(日) 04:23:35.98
railsで知名度上がった所が有るだけに、あんなのrubyじゃねえよって迫害出来ないのが致命的だな。

rubyの案件欲しいなと思ってrailsの案件受けると酷い目に遭うw
phpの案件をrubyで処理スクリプト生成して済ませたほうが気持ち的に楽。
0328デフォルトの名無しさん2012/05/20(日) 05:43:59.19
Rubyに限らず、もうスクリプト言語ブームが終わる。
ブラウザの時代から、アプリの時代に移ったからね

アプリ時代は、高速に動作する言語が求められている。

コンパイルできるRubyはよ来い
実行時にエラーが見つかるスクリプト言語は開発効率悪いしウンコすぎる
0329デフォルトの名無しさん2012/05/20(日) 06:09:04.72
iOSアプリがRubyで書けるらしいね
0330デフォルトの名無しさん2012/05/20(日) 06:30:20.53
MacRuby、Titanium、RubyMotion、なんかいっぱいあるよね
どの時点でコンパイルしてどの程度エラーチェックしてくれるのか知らないけど
0331デフォルトの名無しさん2012/05/20(日) 06:40:23.41
Rubyぐらい動的性が強いと、静的な型検査はそれで一つの研究になるぐらい極めて困難
静的に分からない事が多いと最適化も難しいのでパフォーマンスも上げづらい
だから実行時にJITで頑張るしかないって話になるんだろうけど
0332デフォルトの名無しさん2012/05/20(日) 06:42:50.31
>>330
Rubyはインタープリタだから事前にコンパイルはできないんじゃないの?
0333デフォルトの名無しさん2012/05/20(日) 06:52:57.04
>>332
コンパイルしたものをインターぷりっとする。
0334デフォルトの名無しさん2012/05/20(日) 08:47:14.28
ほとんどの呼び出しが動的束縛だからコンパイルは難しい。
過去にコンパイラを研究した人がいたけど、動的束縛で呼び出すコードを生成するもので、
作るのもメンテするのも大変で、性能は(当時のインタプリタと比べても)たいして上がらなかった。
0335デフォルトの名無しさん2012/05/20(日) 08:49:21.41
実行可能なバイナリファイルとして取り出すとしたら、VMのスナップショットみたいなものになるのかね
0336デフォルトの名無しさん2012/05/20(日) 08:52:17.90
馬鹿には無理
0337デフォルトの名無しさん2012/05/20(日) 08:55:34.52
スレの生産性が一向に上がらないな
0338デフォルトの名無しさん2012/05/20(日) 09:00:03.26
じゃあ妹の話でもする?
0339デフォルトの名無しさん2012/05/20(日) 09:06:50.23
生産性あげるってことならお気にいりgemの話でもしようよ

漏れはいちごが好き
0340デフォルトの名無しさん2012/05/20(日) 09:06:54.61
>>338
妹と生産するのは倫理的に問題が…
0341uy2012/05/20(日) 09:28:29.47
動的言語での大規模開発って結構レベル要求されるのかもな
コンパイラにあって当然の「エラーチェック」が今の動的言語には存在しないので
鞘のない諸刃の剣というか、
何かが足りない状態でプログラミングしてる気しかしない
ほんとに煽り抜きで、その足りない何かを補えるレベルの奴で集まらないと、
動的言語で大規模開発って無理だなと思った

まぁ逆に考えて、大規模なプログラムとか書かなきゃいいんだよ^^^^^^^
0342デフォルトの名無しさん2012/05/20(日) 09:31:05.60
大規模なプログラムってどんなの?
0343デフォルトの名無しさん2012/05/20(日) 10:43:39.98
妄言に構うな
0344デフォルトの名無しさん2012/05/20(日) 11:51:20.93
http://dotinstall.com/lessons/search#!/filter/Ruby
0345uy2012/05/20(日) 12:49:42.33
>>342
動的言語でかいたソースコードの量が多いプログラム
そういうのなら何でも当てはまる事を言ったつもり

開発出来なくはない、でもこの感覚はなんというか
出来る奴と出来ない奴で分かれるような、そんな感覚が迸る
動的言語使ってると周りにもそれ使える奴しかいなくなるのかもしれないけど
これは凄い事なのだと、思い返してみた
0346デフォルトの名無しさん2012/05/20(日) 14:41:58.36
Rubyはメソッド呼び出す時の引数、戻り値の詳細な知識を
オンメモリで覚えておく必要があるから脳が活性化されるんだよな。
型付き+手厚いIDEサポートのある言語を使うと脳が退化する一方だよ。
0347デフォルトの名無しさん2012/05/20(日) 15:44:54.71
>>345
ソースコードの量って行数のこと?何行くらいから大規模なの?
0348デフォルトの名無しさん2012/05/20(日) 16:25:43.19
うわぁ………
0349デフォルトの名無しさん2012/05/20(日) 18:13:05.93
>型付き+手厚いIDEサポートのある言語を使うと脳が退化する一方だよ。

同意
0350デフォルトの名無しさん2012/05/20(日) 18:32:54.53
皮肉にマジレスわろた
0351デフォルトの名無しさん2012/05/20(日) 18:33:55.31
IDEの支援が要らない、なんてのは「酸っぱい葡萄」だな

効率よく開発しようと思ったらIDEの強力な支援があったほうがいいに決まってる。
動的言語の致命的欠点を認めずに、「脳が活性化する」などと
自分を納得させている
0352デフォルトの名無しさん2012/05/20(日) 18:37:40.79
いやだから皮肉にマジレスすんなや
■ このスレッドは過去ログ倉庫に格納されています