プログラミング言語Ruby 1.9.Xについてのスレです。
2007年12月26日にリリース!されたもののまだまだ不安定だし,
1.8.Xとの互換性の問題もあることだし,
かといって,メーリングリストはほとんどROMだし(参加してないし),
ということで,1.9.Xオンリーのインストールからスクリプトまでの話題などどうぞ。
エラー,バグ報告もどしどし
■質問,話題を振る人へ
ポチッとな,とする前に次の3つのリンクを確認。
・http://svn.ruby-lang.org/repos/ruby/tags/v1_9_0_0/doc/NEWS
・http://svn.ruby-lang.org/repos/ruby/tags/v1_9_0_0/ChangeLog
・http://eigenclass.org/hiki.rb?Changes+in+Ruby+1.9 (参考)
未完だけど,マニュアルページもね(^^)
・http://doc.loveruby.net/refm/api/
質問には以下を書くこと。
・インストール環境(OS名、configureオプションなど)
・インストールの問題なのか、スクリプト自体の問題なのかを区別すること
・エラーメッセージ(なるべくそのままで)
・1.8.Xとの違いをできるだけ確認すること(1.8.Xでは実行できたとか)
質問と回答は1.9.X(いずれはRuby2.0)に寄与発展することになる!筈だ(^^)
探検
魁け! Ruby 1.9.X
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2008/01/29(火) 19:45:46188デフォルトの名無しさん
2009/08/12(水) 14:50:54 ああん、あげてもーた。
189デフォルトの名無しさん
2009/08/12(水) 15:03:18 dlもhogeが1.9対応かどうかも関係ないだろ。
190デフォルトの名無しさん
2009/08/12(水) 15:04:21191デフォルトの名無しさん
2009/08/12(水) 17:43:13 >>186
1.9.1のrevisionは?
あとext/digest/md5/extconf.hはどうなってる?
ちなみにCONFIGURE_ARGS=--with-bundled-md5で試してみたところでは、
ちゃんと定義されてるようだ。
$ nm ext/digest/md5/*.o | grep -e MD5 -e :
ext/digest/md5/md5.o:
00000ed7 T _rb_Digest_MD5_Finish
00000d60 T _rb_Digest_MD5_Init
00000da5 T _rb_Digest_MD5_Update
ext/digest/md5/md5init.o:
U _rb_Digest_MD5_Finish
U _rb_Digest_MD5_Init
U _rb_Digest_MD5_Update
1.9.1のrevisionは?
あとext/digest/md5/extconf.hはどうなってる?
ちなみにCONFIGURE_ARGS=--with-bundled-md5で試してみたところでは、
ちゃんと定義されてるようだ。
$ nm ext/digest/md5/*.o | grep -e MD5 -e :
ext/digest/md5/md5.o:
00000ed7 T _rb_Digest_MD5_Finish
00000d60 T _rb_Digest_MD5_Init
00000da5 T _rb_Digest_MD5_Update
ext/digest/md5/md5init.o:
U _rb_Digest_MD5_Finish
U _rb_Digest_MD5_Init
U _rb_Digest_MD5_Update
192デフォルトの名無しさん
2009/08/12(水) 18:39:56 >>191
ruby-1.9.1-p243を使いました。
ext/digest/md5/extconf.hは次のようになっています。
#ifndef EXTCONF_H
#define EXTCONF_H
#define HAVE_CONFIG_H 1
#define HAVE_OPENSSL_MD5_H 1
#define HAVE_SYS_CDEFS_H 1
#define HAVE_INTTYPES_H 1
#define HAVE_UNISTD_H 1
#endif
ruby-1.9.1-p243を使いました。
ext/digest/md5/extconf.hは次のようになっています。
#ifndef EXTCONF_H
#define EXTCONF_H
#define HAVE_CONFIG_H 1
#define HAVE_OPENSSL_MD5_H 1
#define HAVE_SYS_CDEFS_H 1
#define HAVE_INTTYPES_H 1
#define HAVE_UNISTD_H 1
#endif
193デフォルトの名無しさん
2009/08/12(水) 22:47:49194デフォルトの名無しさん
2009/08/14(金) 14:54:55 >>192
OpenSSLのMD5を使うようになってるが、それだとmd5.hはインクルードしないので
#define MD5_Finish rb_Digest_MD5_Finish
は無効のはずなんだが。
まっさらの状態からコンパイルしてもそうなった?
OpenSSLのMD5を使うようになってるが、それだとmd5.hはインクルードしないので
#define MD5_Finish rb_Digest_MD5_Finish
は無効のはずなんだが。
まっさらの状態からコンパイルしてもそうなった?
195デフォルトの名無しさん
2009/08/17(月) 03:32:02 rubyって1.9になってから速くなったよね。たいしたもんだ。
196デフォルトの名無しさん
2009/08/17(月) 17:37:53 節子…、それ違う。Matzの実装が異様に遅すぎたから、普通の速度に戻しただけだ。
197デフォルトの名無しさん
2009/08/17(月) 17:39:35 普通の速度にしたというか、安全側から高速側に倒しただけ
自動焼人 ★ = 自動保守 ◆KAWORUKOFI = 自動保守#K9K?_D[L
名言集 その4
『俺、100人規模の集団サイバーテロの主犯だったこともあるんだぜ』
http://yutori7.2ch.net/test/read.cgi/news4vip/1249830540/ のID:PVAf+dux0 = 自動焼人 ★
> 965 :以下、名無しにかわりましてVIPがお送りします [sage] :2009/08/10(月) 00:02:09.35 ID:PVAf+dux0
> まぁ何だ。
> 俺の過去の経歴に比べたら、割れ厨なんて鼻くそレベルなんだけどなw
> 100人規模の集団サイバーテロの主犯とか、いろいろとな。
----------------------------------------------
この自動焼人 ★メールマガジンの配信停止をご希望される方は
http://qb5.2ch.net/test/read.cgi/sec2chd/1250169591/
にて自動焼人 ★までご連絡ください
名言集 その4
『俺、100人規模の集団サイバーテロの主犯だったこともあるんだぜ』
http://yutori7.2ch.net/test/read.cgi/news4vip/1249830540/ のID:PVAf+dux0 = 自動焼人 ★
> 965 :以下、名無しにかわりましてVIPがお送りします [sage] :2009/08/10(月) 00:02:09.35 ID:PVAf+dux0
> まぁ何だ。
> 俺の過去の経歴に比べたら、割れ厨なんて鼻くそレベルなんだけどなw
> 100人規模の集団サイバーテロの主犯とか、いろいろとな。
----------------------------------------------
この自動焼人 ★メールマガジンの配信停止をご希望される方は
http://qb5.2ch.net/test/read.cgi/sec2chd/1250169591/
にて自動焼人 ★までご連絡ください
199デフォルトの名無しさん
2009/08/17(月) 21:22:23200デフォルトの名無しさん
2009/08/17(月) 21:45:47 どういう職種でどういう用途でどのくらいの期間使うのかによる。
医療系の仕事ならやめとけ。
医療系の仕事ならやめとけ。
201デフォルトの名無しさん
2009/08/17(月) 21:51:33202デフォルトの名無しさん
2009/08/17(月) 21:53:09 医療…原子力制御…
Java並の安定性があるんだね!よかった!
Java並の安定性があるんだね!よかった!
203デフォルトの名無しさん
2009/08/17(月) 21:59:31 よーし、宇宙開発で使っちゃうぞ
204デフォルトの名無しさん
2009/08/17(月) 22:01:46 あの文言は素敵だと思う
考えた人はアジの技能あり
考えた人はアジの技能あり
205200
2009/08/18(火) 00:43:35 原発も詰めとこうかと思ったけどめんどくなってやめた。
そしたら>>201から狙い澄ましたようなボディブロー
そしたら>>201から狙い澄ましたようなボディブロー
206デフォルトの名無しさん
2009/08/21(金) 10:14:44 tmpfileに何があったの?
207デフォルトの名無しさん
2009/08/21(金) 10:32:45 見てきた。
http://redmine.ruby-lang.org/repositories/diff/ruby-19/lib/tempfile.rb?rev=23494&rev_to=22784
Tempfile#unlinkすると勝手にcloseするようになっちまってたのか。
これはひどい。だいたい、
lib/tempfile.rb (Tempfile#unlink): close first for Windows. a patch from Florian Frank. [ruby-core:23505]
とあるけど、これ全プラットフォームでこの動作になってるような。
UNIX厨のmatzが、なんでこんなパッチ採用したんだ……
http://redmine.ruby-lang.org/repositories/diff/ruby-19/lib/tempfile.rb?rev=23494&rev_to=22784
Tempfile#unlinkすると勝手にcloseするようになっちまってたのか。
これはひどい。だいたい、
lib/tempfile.rb (Tempfile#unlink): close first for Windows. a patch from Florian Frank. [ruby-core:23505]
とあるけど、これ全プラットフォームでこの動作になってるような。
UNIX厨のmatzが、なんでこんなパッチ採用したんだ……
208デフォルトの名無しさん
2009/08/22(土) 18:36:27 ああああああ、String#size の返り値が 1.8 と違うのか
まあそりゃそうだわな
あああああめんどくさああああ
というか 1.8.6 に String#bytesize とか入れておいてくれればよかったのに
まあそりゃそうだわな
あああああめんどくさああああ
というか 1.8.6 に String#bytesize とか入れておいてくれればよかったのに
209デフォルトの名無しさん
2009/08/22(土) 18:50:47 ASCII_8BITにするのがそんなに手間かね
210デフォルトの名無しさん
2009/08/22(土) 18:54:05 >>209
はい
はい
211デフォルトの名無しさん
2009/08/22(土) 18:57:32 レスから考えて1.8と1.9の共用スクリプトだろうからな
sizeのためにforce_encodingするとかまあありえんわ
というかASCII_8BIT厨は早く絶滅してくれないかなと思う
sizeのためにforce_encodingするとかまあありえんわ
というかASCII_8BIT厨は早く絶滅してくれないかなと思う
212デフォルトの名無しさん
2009/08/23(日) 10:23:40 >>209
そんな腐った修正ですますなんて、おまえ土方だな?
そんな腐った修正ですますなんて、おまえ土方だな?
213デフォルトの名無しさん
2009/08/23(日) 12:09:39 具体的にどう修正すべきかも書けよ
214デフォルトの名無しさん
2009/08/23(日) 12:21:03 RUBY_VERSION で場合分けする
安全確実高利回り
コードが若干長くてやや複雑で記述が煩雑になるのだけが極めてごく些細微細な欠点
安全確実高利回り
コードが若干長くてやや複雑で記述が煩雑になるのだけが極めてごく些細微細な欠点
215デフォルトの名無しさん
2009/08/23(日) 12:30:47 >>208
> というか 1.8.6 に String#bytesize とか入れておいてくれればよかったのに
1.8.7 には入ってるよ。
1.9 用とソースを共通化したいなら 1.8.6 はいい加減捨てよう。
> というか 1.8.6 に String#bytesize とか入れておいてくれればよかったのに
1.8.7 には入ってるよ。
1.9 用とソースを共通化したいなら 1.8.6 はいい加減捨てよう。
216デフォルトの名無しさん
2009/08/23(日) 12:31:58 respond_to?(:bytesize)
の方がいいと思う
の方がいいと思う
217デフォルトの名無しさん
2009/08/23(日) 13:03:09 >>214
それはないw
それはないw
218デフォルトの名無しさん
2009/08/23(日) 13:21:00 >>216
実際問題として、それではダメだ
こういう場合、特定の名前のメソッドがあるかどうかが問題なのではなく、
メソッドが「どう」動作するかが重要だから
あらゆるメソッドを responed_to? しなければならなくなるし、バージョン差異を埋めるのには向かないと思う
実際問題として、それではダメだ
こういう場合、特定の名前のメソッドがあるかどうかが問題なのではなく、
メソッドが「どう」動作するかが重要だから
あらゆるメソッドを responed_to? しなければならなくなるし、バージョン差異を埋めるのには向かないと思う
219デフォルトの名無しさん
2009/08/23(日) 13:58:48 Pythonじゃないんだから互換性なんて無視してRubyらしさを追求すればいいと思う。
220デフォルトの名無しさん
2009/08/23(日) 14:10:47 responed_to? がなんのために存在するメソッドか考えれば、1.8/1.9 判定に使うのが不適当とわかるはず
defined?(Encoding) とかも同様
Ruby 本体のバージョンが違うことが問題なんだから、素直にバージョン比較すればいいのに
なんでそこでだけ頑なに「Ruby としての読み下しやすさ」を否定した処理をしようとするのがよくわからん
defined?(Encoding) とかも同様
Ruby 本体のバージョンが違うことが問題なんだから、素直にバージョン比較すればいいのに
なんでそこでだけ頑なに「Ruby としての読み下しやすさ」を否定した処理をしようとするのがよくわからん
221デフォルトの名無しさん
2009/08/23(日) 14:20:59 if RUBY_VERSION >= 1.9.0 then … else … end という記述がヤボったくてカッコ悪いと思われてるのでは
なんかこう、超クールな処理になるようにすればみんな使ってくれるかも
1.8 系列だと読み飛ばすけど 1.9 系列だと処理するブロックとか
なんかこう、超クールな処理になるようにすればみんな使ってくれるかも
1.8 系列だと読み飛ばすけど 1.9 系列だと処理するブロックとか
222デフォルトの名無しさん
2009/08/23(日) 14:25:55 > 1.8 系列だと読み飛ばすけど 1.9 系列だと処理するブロックとか
if RUBY_VERSION < "1.9.0"
... # for Ruby 1.8
else
... # for Ruby 1.9
end
if RUBY_VERSION < "1.9.0"
... # for Ruby 1.8
else
... # for Ruby 1.9
end
223デフォルトの名無しさん
2009/08/23(日) 14:46:04 $Rv = RUBY_VERSION < "1.9.0" ? {1.8 => true} : {1.9 => true}
というグローバル変数を設定してるスクリプトなら見たことがある
if $Rv[1.8]
... # for Ruby 1.8
else
... # for Ruby 1.9
end
とか
(Ruby1.9専用処理) if $Rv[1.9]
とか使うらしい
というグローバル変数を設定してるスクリプトなら見たことがある
if $Rv[1.8]
... # for Ruby 1.8
else
... # for Ruby 1.9
end
とか
(Ruby1.9専用処理) if $Rv[1.9]
とか使うらしい
224デフォルトの名無しさん
2009/08/23(日) 14:50:33 よし構文と専用演算子の導入だ。
225デフォルトの名無しさん
2009/08/25(火) 02:53:38 RUBY_VERSIONで分岐すんなよ。消すぞ。
226デフォルトの名無しさん
2009/09/18(金) 23:28:08 【extname.rbの中身】
# -*- coding: utf-8 -*-
a = "記録.txt"
b = "設定.txt"
p File.extname(a)
p File.extname(b)
【実行】
C:\Usr\Ruby>ruby --version
ruby 1.9.1p129 (2009-05-12 revision 23412) [i386-mswin32]
C:\Usr\Ruby>ruby extname.rb
".txt"
"" ←.txtにならない
何ぞこれ
# -*- coding: utf-8 -*-
a = "記録.txt"
b = "設定.txt"
p File.extname(a)
p File.extname(b)
【実行】
C:\Usr\Ruby>ruby --version
ruby 1.9.1p129 (2009-05-12 revision 23412) [i386-mswin32]
C:\Usr\Ruby>ruby extname.rb
".txt"
"" ←.txtにならない
何ぞこれ
227デフォルトの名無しさん
2009/09/19(土) 01:44:36228デフォルトの名無しさん
2009/09/19(土) 11:32:19 ちょっと調べてみた。
パス名関係はまだエンコーディングに対応してない。
常に外部エンコーディングと見なして処理してる。
より正確には、Windowsの場合はCharNextを使っているのでシステムのコードペー
ジの設定に依存する。
詳しく説明すると、UTF-8では「設定.txt」は
e8 a8 ad e5 ae 9a 2e 74 78 74
だが、
$ echo -e '\xe8\xa8\xad\xe5\xae\x9a.txt' | nkf -Swx
險ュ螳txt
\xadは半角ユなので1バイトずれて\x9a\x2eが一文字と認識されてしまう。
そして.が消えてしまってextnameは空になる。
パス名関係はまだエンコーディングに対応してない。
常に外部エンコーディングと見なして処理してる。
より正確には、Windowsの場合はCharNextを使っているのでシステムのコードペー
ジの設定に依存する。
詳しく説明すると、UTF-8では「設定.txt」は
e8 a8 ad e5 ae 9a 2e 74 78 74
だが、
$ echo -e '\xe8\xa8\xad\xe5\xae\x9a.txt' | nkf -Swx
險ュ螳txt
\xadは半角ユなので1バイトずれて\x9a\x2eが一文字と認識されてしまう。
そして.が消えてしまってextnameは空になる。
229デフォルトの名無しさん
2009/09/19(土) 13:37:15 なるほど。
しかも ruby -w で pathname.rb を読むと警告でる。
しかも ruby -w で pathname.rb を読むと警告でる。
230デフォルトの名無しさん
2009/09/19(土) 20:32:49 出ないぞ、と思ったら1.9.1か?
trunkでは直ってるようだ。
trunkでは直ってるようだ。
231デフォルトの名無しさん
2009/09/26(土) 21:11:40 へえ
232デフォルトの名無しさん
2010/01/03(日) 12:32:43 開けましておめでとうございます。
233デフォルトの名無しさん
2010/01/03(日) 12:45:41 空けましておめでとうございます。
234デフォルトの名無しさん
2010/01/03(日) 23:51:06 貫通けましておめでとうございます
姫初めはいかがでしたか?
姫初めはいかがでしたか?
235デフォルトの名無しさん
2010/03/21(日) 14:35:35 大量のオブジェクトが生成されるコードがあって、1.8.7で実行すると
非常に遅いんだけど、ちょっと手直しして1.9で実行すると大幅に
改善されたりしますか?
自分で試したいのはやまやまなんだけど、「ちょっと」の手直しが
どのくらいか不明なので、すいませんが教えてください。
非常に遅いんだけど、ちょっと手直しして1.9で実行すると大幅に
改善されたりしますか?
自分で試したいのはやまやまなんだけど、「ちょっと」の手直しが
どのくらいか不明なので、すいませんが教えてください。
236デフォルトの名無しさん
2010/03/21(日) 15:38:04 >235
DBから20万行取得するだけのスクリプトが3倍速になった。
DBから20万行取得するだけのスクリプトが3倍速になった。
237234
2010/03/21(日) 16:22:51 >236
本当ですか!?やっぱりスイッチする価値ありかなあ。
本当ですか!?やっぱりスイッチする価値ありかなあ。
238デフォルトの名無しさん
2010/03/21(日) 19:45:27 手直しが確実に必要なわけ?
試しに動かせないの?
試しに動かせないの?
239デフォルトの名無しさん
2010/03/21(日) 20:33:27 やってみないとわからないです(´・ω・`)
240デフォルトの名無しさん
2010/03/21(日) 21:08:44 手の施しようがないほど遅くなる場合もある
足し引きの結果が速くなるか遅くなるかは実際に動かさないと判断できない
足し引きの結果が速くなるか遅くなるかは実際に動かさないと判断できない
241234
2010/03/21(日) 21:25:53 >238
1.8系と1.9系の共存はできなくないらしいけど
なんかヘマをやってライブラリ関係が衝突しそうで怖いのです。
まあそんなこと言ってる時点で1.9は「待ち」ですかね。
>240
なんとそういうこともありますか。
ますます移行しにくくなりました。
Mac使いなんで、1.9がOSXにプリインストールされる
ようになったらまた考えます。
1.8系と1.9系の共存はできなくないらしいけど
なんかヘマをやってライブラリ関係が衝突しそうで怖いのです。
まあそんなこと言ってる時点で1.9は「待ち」ですかね。
>240
なんとそういうこともありますか。
ますます移行しにくくなりました。
Mac使いなんで、1.9がOSXにプリインストールされる
ようになったらまた考えます。
242デフォルトの名無しさん
2010/03/21(日) 22:36:36243デフォルトの名無しさん
2010/06/13(日) 23:32:10 エンコード指定uzeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
マジックコメンkimeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
あのスマートだったruby君が理屈っぽいピザになってしまった。。。Railsとか言う奴のせいだ。
マジックコメンkimeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
あのスマートだったruby君が理屈っぽいピザになってしまった。。。Railsとか言う奴のせいだ。
244 ◆rT33C51l9k
2010/06/14(月) 00:11:52 マジックコメントはこんなことやれば一応は省略できるな
ruby -Ka filename.rb
ruby -Ku filename.rb
つうかまさかこのままマジックコメント付けることを義務化し続けるゴミ言語で突き進む気はないだろうな?
なんだろう。OSの文字コードの標準をUTF-8にしやがれっていう見えないプレッシャーでもかけてるつもりかねwww
ruby -Ka filename.rb
ruby -Ku filename.rb
つうかまさかこのままマジックコメント付けることを義務化し続けるゴミ言語で突き進む気はないだろうな?
なんだろう。OSの文字コードの標準をUTF-8にしやがれっていう見えないプレッシャーでもかけてるつもりかねwww
245デフォルトの名無しさん
2010/06/14(月) 10:03:15 おまえは馬鹿か?
マジックコメントが示すのは、ソースコードのリテラルがどの文字コードで書かれているか、だけだぞ極端に言うと。
マジックコメントが示すのは、ソースコードのリテラルがどの文字コードで書かれているか、だけだぞ極端に言うと。
246デフォルトの名無しさん
2010/06/14(月) 17:13:31 と、馬鹿がもう一人
247デフォルトの名無しさん
2010/06/16(水) 02:06:16 JAVAのエクリプスみたいなソフトって無いの?
Windowsで動くやつで
Windowsで動くやつで
248デフォルトの名無しさん
2010/06/16(水) 07:48:16 NetBeansを使えばいいと思うよ
ていうか、Eclipseにも確かRubyプラグインある
ていうか、Eclipseにも確かRubyプラグインある
249デフォルトの名無しさん
2010/07/02(金) 20:20:12 Ruby 1.9.1-p429 アゲ
250デフォルトの名無しさん
2010/07/14(水) 01:08:41 結構、言語処理系に行くっていうのが、はまりポイントで、
確か、Rubyのまつもとゆきひろさんか誰かがおっしゃっていたんですが、
「エンジニアっていうのはだいたいOSを作るか、
言語処理系を作るかに分かれる」らしいんです。
私はどっちにも足をつっこんでしまった感じで、
これは泥沼なんじゃないのかなとも思いますね(笑)
確か、Rubyのまつもとゆきひろさんか誰かがおっしゃっていたんですが、
「エンジニアっていうのはだいたいOSを作るか、
言語処理系を作るかに分かれる」らしいんです。
私はどっちにも足をつっこんでしまった感じで、
これは泥沼なんじゃないのかなとも思いますね(笑)
251デフォルトの名無しさん
2010/07/14(水) 08:36:24 Matzの頭にはCPUを作る方への分岐はないんだな
252デフォルトの名無しさん
2010/08/09(月) 23:53:11 アニメにはまる道もあるぞ。
253デフォルトの名無しさん
2011/01/12(水) 17:47:24 モジュール関数を呼ぶ時、
MyModule::mymethodと::で繋ぐのが好ましいんでしたっけ?
それともMyModule.mymethodという風に「.」で繋ぐ方が望ましいんでしたっけ?
これは確かどっかに書いてあって、それでどっちかに統一しなきゃな、って思ってたんだけど、
ruby久々に触ったら忘れてしまってた…。
これどっちだったか分かりますでしょうか?ちなみに理由も添えて教えてほしい
更に言えばどこに書いてあった、という情報源も提示していただきたいのです
「昔自分が書いたコード見ればいいだろ」と思うかも知れないけど、
その時は仕事で使ってたもので、自分が書いたコードも手元に無いのです
MyModule::mymethodと::で繋ぐのが好ましいんでしたっけ?
それともMyModule.mymethodという風に「.」で繋ぐ方が望ましいんでしたっけ?
これは確かどっかに書いてあって、それでどっちかに統一しなきゃな、って思ってたんだけど、
ruby久々に触ったら忘れてしまってた…。
これどっちだったか分かりますでしょうか?ちなみに理由も添えて教えてほしい
更に言えばどこに書いてあった、という情報源も提示していただきたいのです
「昔自分が書いたコード見ればいいだろ」と思うかも知れないけど、
その時は仕事で使ってたもので、自分が書いたコードも手元に無いのです
254デフォルトの名無しさん
2011/01/12(水) 18:45:14 クラスオブジェクトの特異メソッドを呼ぶときは、それ用の特殊な記法よりも、
<オブジェクトを示す式> . <メソッド名> のほうが Ruby の一般的な記法なので
それに合わせて、MyModule.mymethod のほうがよい。
:: は定数専用でしか使わないようにする。
<オブジェクトを示す式> . <メソッド名> のほうが Ruby の一般的な記法なので
それに合わせて、MyModule.mymethod のほうがよい。
:: は定数専用でしか使わないようにする。
255デフォルトの名無しさん
2011/01/12(水) 20:06:22 なぜ、定数なら :: なの?
256デフォルトの名無しさん
2011/01/12(水) 20:23:51 ::はそもそも定数の区切りとしての用途のもの。
モジュール名やクラス名も、値としてClassクラスやModuleクラスの
インスタンスを持つ定数に過ぎない。
MyModule.mymethod は単なる特異メソッドの呼び出しなのだが、
クラスやモジュールの得意メソッドはC++を背景に持つ人にはstatic
メソッドに見えるので、便宜を図って::でも呼べるようになってるだけ。
モジュール名やクラス名も、値としてClassクラスやModuleクラスの
インスタンスを持つ定数に過ぎない。
MyModule.mymethod は単なる特異メソッドの呼び出しなのだが、
クラスやモジュールの得意メソッドはC++を背景に持つ人にはstatic
メソッドに見えるので、便宜を図って::でも呼べるようになってるだけ。
257デフォルトの名無しさん
2011/01/12(水) 20:28:51 と書いておいて申し訳ないが、定数の区切りというのは正しくないか。
r = Regexp
r::EXTENDED #=> 2
とかアリだし。
r = Regexp
r::EXTENDED #=> 2
とかアリだし。
258253
2011/01/14(金) 09:09:02 回答ありがとう。確かに「.」が正しかった気がします。
ついでにもう一つ、perlには配列の最後の要素の添字を求めるのに $#foo という記法がありますが、
rubyでは foo.size-1 するしかないんだっけ?
なんかこれが美しくないので専用の記法(あるいはメソッド)が無いか調べてたんだけど、
多分これは無かった気がしたので無いんでしょうね
インクリメント、デクリメントも無いしね
ついでにもう一つ、perlには配列の最後の要素の添字を求めるのに $#foo という記法がありますが、
rubyでは foo.size-1 するしかないんだっけ?
なんかこれが美しくないので専用の記法(あるいはメソッド)が無いか調べてたんだけど、
多分これは無かった気がしたので無いんでしょうね
インクリメント、デクリメントも無いしね
259デフォルトの名無しさん
2011/01/14(金) 10:25:49 >>258
多分、無い。
perlの記法が美しいとは全く思えないんだけど、
class Array
def -@
size - 1
end
end
-[1,2,3] # => 2
みたいなことは、やろうと思えば出来る。
でも、last_indexとかのメソッドを作った方がいいだろうね。
多分、無い。
perlの記法が美しいとは全く思えないんだけど、
class Array
def -@
size - 1
end
end
-[1,2,3] # => 2
みたいなことは、やろうと思えば出来る。
でも、last_indexとかのメソッドを作った方がいいだろうね。
260デフォルトの名無しさん
2011/01/14(金) 11:13:26 添え字アクセスのときなら、負の数なら末尾から数えるんだけど(-1が末尾)、
それが実際にいくつになるかはsizeと相談するしかなさそうだな。
それが実際にいくつになるかはsizeと相談するしかなさそうだな。
261デフォルトの名無しさん
2011/01/14(金) 18:23:41 そこって初心者に聞かれたらなんて答えればいいんだろう。
Object#contantsの戻り値がHashとかだったら、構文糖衣だぜって言って終わりなのだが。
まあ、実装はHashなんだろうけど。
Object#contantsの戻り値がHashとかだったら、構文糖衣だぜって言って終わりなのだが。
まあ、実装はHashなんだろうけど。
262261
2011/01/14(金) 18:28:47263デフォルトの名無しさん
2011/01/14(金) 18:32:03264デフォルトの名無しさん
2011/01/17(月) 08:42:21 >>260
あー、それ忘れてた。ただ「添字がマイナスの時は末尾から数える」って公式に決まってたっけ?
今オンラインリファレンスざっと見たけど書いてない。ウサギ本に載ってた気がしたが…
要するに将来のverUpなんかであっさりこの辺の挙動変えられると安心して使えないよね
そもそも、foo[-1]と書くよりfoo.lastと書いた方が美しいし読みやすいし、いい事尽くめではあるが
>>262
foo.size-1 より $#foo の方が美しいとは言わないが、(俺もどっちもどっちだと思う)
専用の記法があったらな、ないのかな、って思っちゃって
>>259案のlast_indexメソッドをArrayクラスに追加ってのが一番美しいと思う
ただそこまでする必要があるか?っていうと、
やはりこれは公式に標準搭載されていて全員に認知されていてこそ意味があると思うので、
個人的にこういうことするんだったら素直に foo.size-1 と書くのが平易で正しいと思う
あー、それ忘れてた。ただ「添字がマイナスの時は末尾から数える」って公式に決まってたっけ?
今オンラインリファレンスざっと見たけど書いてない。ウサギ本に載ってた気がしたが…
要するに将来のverUpなんかであっさりこの辺の挙動変えられると安心して使えないよね
そもそも、foo[-1]と書くよりfoo.lastと書いた方が美しいし読みやすいし、いい事尽くめではあるが
>>262
foo.size-1 より $#foo の方が美しいとは言わないが、(俺もどっちもどっちだと思う)
専用の記法があったらな、ないのかな、って思っちゃって
>>259案のlast_indexメソッドをArrayクラスに追加ってのが一番美しいと思う
ただそこまでする必要があるか?っていうと、
やはりこれは公式に標準搭載されていて全員に認知されていてこそ意味があると思うので、
個人的にこういうことするんだったら素直に foo.size-1 と書くのが平易で正しいと思う
265デフォルトの名無しさん
2011/01/17(月) 08:47:22 >>260
>あー、それ忘れてた。ただ「添字がマイナスの時は末尾から数える」って公式に決まってたっけ?
array.c
* Negative indices count backward from the end of the
* array (-1 is the last element).
>あー、それ忘れてた。ただ「添字がマイナスの時は末尾から数える」って公式に決まってたっけ?
array.c
* Negative indices count backward from the end of the
* array (-1 is the last element).
266デフォルトの名無しさん
2011/01/17(月) 08:57:08 >>264 だった。
IPAのFinal Draftによると
[](*args)
a) nをレシーバの長さとする
b) argsの長さが0のとき、ArgumentError
c) argsの長さが1のとき、
1) その引数がIntegerならその値をkとする。Integerでなければ未定義
2) k<0ならkにnを加える。まだk<0ならnilを返す。
3) k>=nならnilを返す。
4) k番目の要素を返す。
d) argsの長さが2のとき<以下略>
IPAのFinal Draftによると
[](*args)
a) nをレシーバの長さとする
b) argsの長さが0のとき、ArgumentError
c) argsの長さが1のとき、
1) その引数がIntegerならその値をkとする。Integerでなければ未定義
2) k<0ならkにnを加える。まだk<0ならnilを返す。
3) k>=nならnilを返す。
4) k番目の要素を返す。
d) argsの長さが2のとき<以下略>
267デフォルトの名無しさん
2011/01/22(土) 09:11:34 >>265-266
ほー。なるほど。サンクス
ほー。なるほど。サンクス
268デフォルトの名無しさん
2011/03/01(火) 12:21:59.04 ∩___∩ 未だ連絡ゼロクマー
| ノ ___ヽ
/。・゚・(____ `・゜゚・。 いつでも連絡するクマー
| u( _●_)ヽ 〉
彡、 |∪| / 誰か助けるクマー
. / ヽノ . /´
.____
/ ヽ、 _ノ\
/ (○)iji(○)\ 正義がキチガイ呼ばわりされたんだぞ。
/ (__人__) \
| |::::::| | 義憤に駆られることはないのかお?
\ l;;;;;;l /l!| !
/ `ー' \ |i Rubyistとして後ろめたさはないのかお!
/ ヽ !l ヽi
( 丶- 、 しE |そ 一生後悔することになるお!
`ー、_ノ 煤@l、E ノ <
レY^V^ヽl そこのあなた!勇気を出すんだお。
____
/ \ 助けて欲しいんだお・・・
/ _ノ ヽ、_ \ 同じ釜の飯を食ったんだお・・・
/ o゚((●)) ((●))゚o \ いつも一人で居残り残業してたんだお・・・
| (__人__) | あまりの悲しさに、むせび泣いたこともあったお
\ ` ⌒´ / そんなやる夫を見捨てるのかお?
____ このままだったら一生恨むお
/ \ たとえ誰がなんと言おうと、強烈な違和感なんだお
/ _ノ ヽ、_ \ 直観がモノ言ってんだお
/ o゚⌒ ⌒゚o \ えっぇっえ〜ん。え〜ん。
| (__人__) | えっぇっえっぇっ。うっぅっぅうー。。。
\ ` ⌒´ / うええ〜ん。。。えぐっぇぐっうっうっううぅー。。。
| ノ ___ヽ
/。・゚・(____ `・゜゚・。 いつでも連絡するクマー
| u( _●_)ヽ 〉
彡、 |∪| / 誰か助けるクマー
. / ヽノ . /´
.____
/ ヽ、 _ノ\
/ (○)iji(○)\ 正義がキチガイ呼ばわりされたんだぞ。
/ (__人__) \
| |::::::| | 義憤に駆られることはないのかお?
\ l;;;;;;l /l!| !
/ `ー' \ |i Rubyistとして後ろめたさはないのかお!
/ ヽ !l ヽi
( 丶- 、 しE |そ 一生後悔することになるお!
`ー、_ノ 煤@l、E ノ <
レY^V^ヽl そこのあなた!勇気を出すんだお。
____
/ \ 助けて欲しいんだお・・・
/ _ノ ヽ、_ \ 同じ釜の飯を食ったんだお・・・
/ o゚((●)) ((●))゚o \ いつも一人で居残り残業してたんだお・・・
| (__人__) | あまりの悲しさに、むせび泣いたこともあったお
\ ` ⌒´ / そんなやる夫を見捨てるのかお?
____ このままだったら一生恨むお
/ \ たとえ誰がなんと言おうと、強烈な違和感なんだお
/ _ノ ヽ、_ \ 直観がモノ言ってんだお
/ o゚⌒ ⌒゚o \ えっぇっえ〜ん。え〜ん。
| (__人__) | えっぇっえっぇっ。うっぅっぅうー。。。
\ ` ⌒´ / うええ〜ん。。。えぐっぇぐっうっうっううぅー。。。
269デフォルトの名無しさん
2011/03/01(火) 14:30:32.72 そういえばとっくにRuby 1.9.2出てるのに話題に上がってないようなのは何故だ
270デフォルトの名無しさん
2011/03/01(火) 16:53:25.81 本スレで出来るからじゃない?
271デフォルトの名無しさん
2011/03/01(火) 17:29:39.38 いまから Ruby を始めるのであれば 1.9.2 が妥当?
272デフォルトの名無しさん
2011/03/02(水) 01:11:46.83 >271
2.0を待て。
2.0を待て。
273デフォルトの名無しさん
2011/03/02(水) 13:17:28.52274デフォルトの名無しさん
2011/03/10(木) 16:44:21.82 Ubuntu 環境で 1.9.2 を使いたいのですが deb が提供されていないようので
rvm あたりを導入するのがよさげなのでしょうか。
rvm あたりを導入するのがよさげなのでしょうか。
275デフォルトの名無しさん
2011/03/10(木) 17:21:47.91 変なレイヤーがあるとトラブル時に原因が分かりにくくなるので、
まったくの初心者は
--prefix=/usr/local (デフォルト。要root)か --prefix=$HOME みたいな
引数でconfigureしてインストールするのを勧めたい。
けど、最近は rvm がトレンドなんだろうな。
まったくの初心者は
--prefix=/usr/local (デフォルト。要root)か --prefix=$HOME みたいな
引数でconfigureしてインストールするのを勧めたい。
けど、最近は rvm がトレンドなんだろうな。
276274
2011/03/11(金) 17:59:58.64 Thank you > 275
Debian/Ubuntu 環境で1.8.7をそれなりに使っていたので
まったくの初心者ではないのですが、今後の運用を考慮して
昔風に make install するか rvm で楽できるのか、悩むなあ。
しかし、なんで1.9.2はdeb化されていないのだろう。
Debian/Ubuntu 環境で1.8.7をそれなりに使っていたので
まったくの初心者ではないのですが、今後の運用を考慮して
昔風に make install するか rvm で楽できるのか、悩むなあ。
しかし、なんで1.9.2はdeb化されていないのだろう。
277デフォルトの名無しさん
2011/03/11(金) 18:14:03.77278デフォルトの名無しさん
2011/03/12(土) 00:08:30.87 そんなことになっていたとは知りませんでした。
どうもありがとうございます > 277
どうもありがとうございます > 277
279デフォルトの名無しさん
2011/03/15(火) 11:36:03.96 >>271
このへん初心者スレで時々ツッコミが入るのだが、
世間様で公開されてるコードはせいぜい1.8.7くらいしか考えてないことが多い
移行準備のために1.9から1.8.7に持ってきた機能すらほとんど使われてない有様
ちょっと古い本に書いてあったりぐぐって見つけたりしたコードを1.9.1や1.9.2でそのまま実行しようとしても、
「なんだかよくわからないエラー」でさっぱり動作しないことがしょっちゅうある
それを乗り越える教科書を持ってるか教えてくれる詳しい人なりがいるか、
あるいはなんでもかんでも悩んで大きくなるまぞな人なのなら、1.9.2から始めても構わないよ
このへん初心者スレで時々ツッコミが入るのだが、
世間様で公開されてるコードはせいぜい1.8.7くらいしか考えてないことが多い
移行準備のために1.9から1.8.7に持ってきた機能すらほとんど使われてない有様
ちょっと古い本に書いてあったりぐぐって見つけたりしたコードを1.9.1や1.9.2でそのまま実行しようとしても、
「なんだかよくわからないエラー」でさっぱり動作しないことがしょっちゅうある
それを乗り越える教科書を持ってるか教えてくれる詳しい人なりがいるか、
あるいはなんでもかんでも悩んで大きくなるまぞな人なのなら、1.9.2から始めても構わないよ
280デフォルトの名無しさん
2011/03/15(火) 11:47:01.55 いやそれは「1.9.xで困ったらこのスレとかで気軽に聞いてね」と言うべきところだろ…
281デフォルトの名無しさん
2011/04/08(金) 21:39:04.63 Twitter、検索結果表示が“3倍速く”なったと発表――フロントエンドの切り替えで
Twitterは、フロントエンドをRuby on RailsからBlenderに切り替えた結果、検索結果の待ち時間が大幅に改善されたと発表した。
http://www.itmedia.co.jp/news/articles/1104/07/news043.html
-----------------
急成長する検索ニーズに対処するために検索エンジンを書き換え、リアルタイム検索エンジンを立ち上げた。
その際にバックエンドをMySQLからJavaベースのテキスト全文検索エンジンLuceneに移行した。
また先週、フロントエンドをRuby on RailsからBlenderと呼ばれるJavaサーバに切り替えた。
待ち時間の短縮は、こうした取り組みの成果だという。
Twitterは、フロントエンドをRuby on RailsからBlenderに切り替えた結果、検索結果の待ち時間が大幅に改善されたと発表した。
http://www.itmedia.co.jp/news/articles/1104/07/news043.html
-----------------
急成長する検索ニーズに対処するために検索エンジンを書き換え、リアルタイム検索エンジンを立ち上げた。
その際にバックエンドをMySQLからJavaベースのテキスト全文検索エンジンLuceneに移行した。
また先週、フロントエンドをRuby on RailsからBlenderと呼ばれるJavaサーバに切り替えた。
待ち時間の短縮は、こうした取り組みの成果だという。
282デフォルトの名無しさん
2011/04/08(金) 23:13:34.06 Blenderっていわれても3DCGの奴しか思い浮かばない
283デフォルトの名無しさん
2011/04/09(土) 01:39:58.76 まるちにれすすんな
284デフォルトの名無しさん
2011/04/28(木) 00:40:49.31 >>282
Nettyとかいう非同期型ネットワークアプリケーションフレームワークを元に
作った(今のところ)一品ものらしい
ttp://www.jboss.org/netty
どこで読んだか忘れたけど、GCがスケールしなかった一番の要因みたいよ
まあフロントエンドが変わるっていっても作業する言語が全部Javaになるわけじゃないよ、とかも言ってたけど
Nettyとかいう非同期型ネットワークアプリケーションフレームワークを元に
作った(今のところ)一品ものらしい
ttp://www.jboss.org/netty
どこで読んだか忘れたけど、GCがスケールしなかった一番の要因みたいよ
まあフロントエンドが変わるっていっても作業する言語が全部Javaになるわけじゃないよ、とかも言ってたけど
285デフォルトの名無しさん
2011/06/28(火) 23:08:38.58 あまり人がいないということは
1.9 で困ってる人はいないということかな
1.9 で困ってる人はいないということかな
286デフォルトの名無しさん
2011/06/28(火) 23:42:37.06 いやいや、まだみんな1.8に留まってるということですよ
287デフォルトの名無しさん
2011/06/29(水) 02:41:50.01 Visualuruby って今バージョンいくつ?
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 高市首相の答弁書に「台湾有事答えない」と明記 存立危機発言当時 ★2 [蚤の市★]
- 「偽サッチャー」「自滅的」「時代遅れ」 高市首相の経済政策を海外メディアが酷評 [蚤の市★]
- 【ド軍】山本由伸、WBC出場を決断!ドジャースが本人の意向を尊重、佐々木朗希はチームが故障歴を懸念で不参加 [鉄チーズ烏★]
- 米大統領報道官「日本と強固な同盟維持、中国とも協力」 [少考さん★]
- JA全農が「新おこめ券」…来年9月末の有効期限を新設、必要経費のみ上乗せ ★2 [蚤の市★]
- 【協会けんぽ】保険料率34年ぶり下げ 手取り増を後押しー4000万人加入 [蚤の市★]
- 逆に、集団ヒステリー、被害妄想、人種差別、攻撃性向の日本人が80年もおとなしくできた理由は? [452836546]
- 女の子集合!
- 中国人、超ド正論。「チベットやウイグルに住んでるのはチベット族やウイグル族だが、アイヌから奪った土地に住んでる日本人こそ侵略者」 [314039747]
- 百合営業してるアイドル「これは営業だから…んっクチュクチュ」←これ
- ひまでんぼ
- まぁでもボッチちゃんってくだらない男に引っかかってサセ子にされちゃうよね
