- 1 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 08:39:14 ]
- プログラミング言語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を読め」でいいので、叩かない&怖がらせない。 ・わけわかな質問にもエスパー発揮で。できれば質問の仕方を教えるぐらいで。 ・自信がない回答ならその旨表明すること。誤った回答は初心者じゃ見抜けない。
- 359 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 09:26:54 ]
- 阻害してるという意味ではどっちもどっちだと思う
まー、mingw32は正式版じゃないからな 正式版だけ使いたいという人にはお勧めしない 現状の正式版は中身のRubyが全然「安心の正式版」じゃないけどな インストーラーが未熟でも中身のRubyがバグフィックスされてることのほうが重要だと思う
- 360 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 09:44:31 ]
- >>359
正式版ってなによ どこにそんなことが書いてある
- 361 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 09:51:15 ]
- 解読してみた
まー、(現在公開されている)mingw32(のRuby Installer)は(まだrc2で)正式版じゃないからな (rcやベータではない)正式版(のインストーラー)だけ使いたいという人には(まだ)お勧めしない 現状の(唯一の)正式版(として公開されてるOne Click Installer)は中身のRuby(の本体のパッチレベル)が(古くて) 全然「安心の正式版」(と言えるような組み合わせ)じゃないけどな インストーラーが未熟でも中身のRubyがバグフィックスされてることのほうが重要だと思う こんなんでどう
- 362 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 10:03:30 ]
- わかりやすい
- 363 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 13:07:09 ]
- >>361
thanxよくわかったw
- 364 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 18:00:13 ]
- MSVC版では出来なくてmingw版だけで動く機能
あるいはその逆で どんなのがありますか
- 365 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 18:06:00 ]
- そーゆーもんはない
機能で分かれてるわけじゃない わかんなかったら mswin32 である ActiveScriptRuby 使っとけ
- 366 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 19:23:29 ]
- インストーラーとしてはmingwよりone click installerの方が正式版のため信頼できるが、
中身のRuby自体はmingwの方が新しい って理解でいいの?
- 367 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 19:28:38 ]
- thread とか lock とかは mingw の方が信頼性があるような気がする
- 368 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 19:31:35 ]
- >>367
GIL使ってる限り信頼性は変わらない
- 369 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 19:38:19 ]
- OneClickInstallerはインストーラー含めて正式版が作られてる
RubyInstallerはまだインストーラー含めてrc版(ベータと正式の中間) OneClickInstallerで入るRubyはmswin32で作られている RubyInstallerで入るRubyはmingw32で作られている mswin32は従来のタイプの「Windows版Ruby」でgemライブラリでは確実にバイナリがある 古いコンパイラで作ってあるせいか、環境によってはなぜか動作が遅いことがある どうせアップグレード時は全消し推奨なんで面倒の少ないこっち使って慣れろという説も根強い mingw32は今後主流になるもので最終更新日が古いgemライブラリではバイナリ自前コンパイルも 動作速度が遅くなる報告は少ないが、gemバイナリの自前コンパイル強要はめどい サイトのDevelopment KitをRubyを標準インストールしたディレクトリに上書きコピーすればいいだけだが あと、mingw32をWindows環境のRubyの印だと認識してないスクリプトがまだあるので手直しが要ることも
- 370 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 19:58:39 ]
- あああ、なんかわけわからないことに
mswin32 版を使う場合は ActiveScriptRuby のほうインストールしろ OneClickInstaller 使って数年前の Ruby をわざわざいまさらインストールする必要もない ■ とにかく迷いたくない普通の人 … ActiveScriptRuby 面倒がない mswin32 版のみ提供、ActiveTcl を別途入れると tcl でウィンドウも描けるぞ(要Tcl言語知識) ttp://arton.hp.infoseek.co.jp/indexj.html 1.9.1 を使いたい人は ttp://www.artonx.org/data/asr/ の「Ruby-1.9.1-p数字 Microsoft Installter Package」を使わせてもらえ なに、自分のとこだけ妙に処理が遅い? 宝くじ並の外れ環境だからマシン買い換えろ ■ トラブっても自分で手直しする根性あるから遅くなる可能性ないほうがいい … RubyInstaller 古いコンパイラ製ではない mingw32 版の提供がメイン ttp://rubyinstaller.org/download.html 古いgemパッケージでWindows環境だとみなしてくれずにコンパイラが走って「make がない」と言われること有り それを乗り越えるためにコンパイラ環境が入ってる「Development Kit」をインストールしておくのを推奨 ttp://wiki.github.com/oneclick/rubyinstaller/development-kit 上記解説にもあるが、RubyInstallerの標準ディレクトリ構成の場合は上書きだけでよい(設定ファイル記述不要) 7zip でないとダウンロードしたファイルを展開できないので注意 スクリプト内での条件分岐で「mingw32」をWindowsとみなさないものが稀にあるので、それは手動で書き換える必要あり
- 371 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 20:08:43 ]
- 長い
・ 初心者は ttp://www.artonx.org/data/asr/ の 1.8.7 だけ使え、トラブル起きたらここで聞け でいいじゃん
- 372 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 20:16:28 ]
- てか本来は arton.hp.infoseek.co.jp/indexj.html でいいんだよね
どうでもいいけどこのサイト meta charset と本文 HTML のエンコーディング食い違ってるぞ 見るたびに毎回エンコーディング指定やり直さないといかん
- 373 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 20:22:12 ]
- 先生,「1.8が許されるのは小(ry」と煽ってもいいのはいつ頃ですか
- 374 名前:デフォルトの名無しさん [2010/02/10(水) 20:22:56 ]
- 1.8.6はともかく1.8.7は数年無理。
- 375 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 20:24:29 ]
- 先生,JRubyが「Ruby 1.9 compatible now」になるのはいつ頃ですか
- 376 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 21:00:20 ]
- >>369-370
とりあえず Windows で Ruby がめちゃくちゃ面倒糞いということがわかりました ほんとうにありがとうございました
- 377 名前:デフォルトの名無しさん [2010/02/10(水) 21:01:13 ]
- >>375
見た感じ遠い未来に見える。 kenai.com/projects/jruby/pages/Ruby1_9Support
- 378 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 21:02:47 ]
- >>372
それは作者がUTF-8の普及だか何かのためにわざとやってるらしいよ
- 379 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 21:08:40 ]
- >>377
そもそもなんでそんな時間かかるんだよ 何がネックになってるんだ
- 380 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 21:12:04 ]
- >>379
Java からも読めるように作ること Java VM 上で単独で動く ruby インタプリタを作るだけなら たぶんもっと早くにプロジェクト完了してるんじゃないかな
- 381 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 21:55:57 ]
- つか1.8.7って鬼車使えるの?
- 382 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 22:18:29 ]
- 黙れカス
- 383 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 22:19:06 ]
- ごばく
- 384 名前:デフォルトの名無しさん [2010/02/10(水) 22:26:55 ]
- >>381
gem install oniguruma 組み込みになるわけではないので制約はあるが。 oniguruma.rubyforge.org/use.xhtml
- 385 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 23:22:59 ]
- oniguruma を使うようなひとなら mingw とか入れてるような
気がします・・・知らずに joni 使ってるひとも嫌少ないだろう・・・
- 386 名前:デフォルトの名無しさん [2010/02/10(水) 23:49:30 ]
- >>381 ってjrubyの話なん?
- 387 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 03:58:52 ]
- >>384
Requirements * Oniguruma regular expression library (>= 4.x.x) ってことは 自分でOnigurumaをコンパイルするか バイナリをどこからともなく拾ってくる必要があるってことか ./configure make make install で済む話ではあるが
- 388 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 22:37:00 ]
- irb> p "ねこだいすき"
"\343\201\255\343\201\223\343\201\240\343\201\204\343\201\231\343\201\215" irb> $KCODE="u" irb> p "ねこだいすき" "ねこだいす\343\201\215" なんだこれ
- 389 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 23:22:03 ]
- 下のようなループってrubyだとどう書きますか?
for (i = rect->lx, j = rect->ly; i <= rect->hx; i++) map[i][j] = TRUE;
- 390 名前:デフォルトの名無しさん [2010/02/11(木) 23:24:17 ]
- 最近出るようになった気がする。
$ cat test.rb # coding: utf-8 p 'ねこだいすき' $ rvm 1.8.7-p72,1.8.7-p160,1.8.7-p174,1.8.7-p249,mput ruby -Ku test.rb ruby-1.8.7-p72: ruby 1.8.7 (2008-08-11 patchlevel 72) [i686-darwin10.2.0] "ねこだいすき" ruby-1.8.7-p160: ruby 1.8.7 (2009-04-08 patchlevel 160) [i686-darwin10.2.0] "ねこだいすき" ruby-1.8.7-p174: ruby 1.8.7 (2009-06-12 patchlevel 174) [i686-darwin10.2.0] "ねこだいすき" ruby-1.8.7-p249: ruby 1.8.7 (2010-01-10 patchlevel 249) [i686-darwin10.2.0] "ねこだいす¥343¥201¥215" mput-head: ruby 1.9.2dev (2010-02-10 trunk 26632) [x86_64-darwin10.2.0] "ねこだいすき"
- 391 名前:デフォルトの名無しさん [2010/02/11(木) 23:26:15 ]
- >>389
jは変化してないけどいいの? iだけならuptoでよいでしょう。
- 392 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 23:41:26 ]
- >>391
ありがとうございます! これをrubyに書き換えて勉強中でした。 ttp://racanhack.sourceforge.jp/rhdoc/coderect.html
- 393 名前:デフォルトの名無しさん [2010/02/11(木) 23:52:42 ]
- >>388
redmine.ruby-lang.org/repositories/revision/ruby-18?rev=26103 usa, 2009年12月15日 11:50 AM string.c (rb_str_inspect): wrong result of UTF-8 inspect because of the mistake of calculation. reported by eban via IRC. これかな。 あれ、1.8.7-p248 がクリスマスリリースだったはずだが…
- 394 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 23:56:35 ]
- Iconv::IllegalSequenceを見るのはもう飽きたお…
- 395 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 03:35:08 ]
- 何か一揆にperl5の時代に戻った気がするなw
教祖様が日本語処理ぐらい最初からまともに組み込んでてくれれば。
- 396 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 06:07:00 ]
- iconvとnkfってどう違うの?
どう使い分けたらいいの?
- 397 名前:デフォルトの名無しさん [2010/02/12(金) 08:13:29 ]
- nkfは
- shift_jis, euc-jp, iso-2022-jp, utf-8しか使えない。 - 改行コードの変換ができる。 - カタカナやアルファベットの全角半角変換ができる。 - base64のデコード/エンコードができる。 iconv - いろんなコードが変換できる。
- 398 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 08:28:43 ]
- >>372
ttp://www.artonx.org/diary/20100211.html#c01
- 399 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 08:33:31 ]
- 文字コード変換ならiconvが上で
その他機能がnkfにはあると そういうこと?
- 400 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 08:51:30 ]
- そもそも文字コード変換に上とか下とかあるんかいな
1.9のencodeとNKF/iconv/kconv/uconvの違いも教えてほしい
- 401 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 09:14:29 ]
- 動作が違うとかは置いとくと
対応してる文字コードが多いほうが上っていうことでしょ String#encodeはよくわからんが ttp://jp.rubyist.net/magazine/?0009-BundledLibraries
- 402 名前:デフォルトの名無しさん [2010/02/12(金) 09:17:58 ]
- encodeは文字列のバイト表現を指定のものに変換したStringを作り、エンコード情報を設定。
encode!は自分自身の持つバイト列とエンコード情報を変える。 force_encodingは自分自身のエンコード情報のみ変える。バイト列はそのままで解釈が変わる。 kconvはnkfをラッピングして文字コード変換のみ、簡単にできるようにしたもの。 uconvはたしか標準じゃないよな? euc-jp, cp932(shift_jisの亜種), utf16, ucs-4に対応している。 rubyでutf-8が扱えるようになったのはuconv作者の提案したコードがもとになってる。 ttp://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-dev/4186
- 403 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 09:28:13 ]
- >>400
NKFはguessができるので、現在のエンコーディングが何かわからなくても変換ができる ただ、日本語関連(とMIME)しか認識できないしLatin-1とかの指定もできない iconvはguessができないので、現在のエンコーディングを正確に(本当に正確に)指定しないと変換できない そのかわり、NKFではできなかったような文字エンコーディングの値の保持解釈ができる SHIFT_JISとCP932やEUC-JPとEUC-JP-MSを使い分けられる(可能性がある)のはiconvだけ ただし、相手のマシンにインストールされている外部iconvのバージョンと対応に依存するのでやや面倒 iconv実装にはでっかい版と小さい版があり、外人産は小さい版だけを使うことが多いのでファッキンガッデム 1.9のEncodingはiconvを使ってる kconvはNKFを使ってる uconvはめんどくさいからもう使うな、使わなくても用は済むはず
- 404 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 09:36:07 ]
- >>401
そのリンクは読んだけど総花的であんまり参考にならなかった ・M17N(1.9)/NKF/iconv/kconv/uconvで変換結果に差が出ることがあるか ・速度の違い ・推測の精度 ・使い分けのシチュエーション がよくわからんのですよ
- 405 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 09:38:35 ]
- >>403
わかりやすい
- 406 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 09:44:20 ]
- ってことは,事実上 iconv と NKF の二種類しか変換器は存在しないわけね
でメールみたいに入力のエンコーディングがよく解らん場合はNKF.guessをつかえと 入力のエンコーディングが固定されてる場合はiconvでおkでOK? 1.9のM17Nはguessしてくれてるんだと思ってたわ。
- 407 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 09:47:44 ]
- > メールみたいに入力のエンコーディングが
のあとに続くのが > よく解らん場合 なのがショックだ あれは99パーセントくらいの確率でヘッダに書いてあるまんまだと思うのだが最近は違うんか
- 408 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 09:49:41 ]
- メールやHTMLが文字化けするのはヘッダのエンコーディングと実際のエンコーディングが違うからなんじゃないの?
- 409 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 09:55:24 ]
- 日本人しか使わないプログラムなのならNKFでいいよ
外国の人も使うならiconv「でなければならない」 MechanizeとかではNKFを組み込んでしまった日本人がいて、その部分がえんえん障害になってる iso-8859-xはNKFのShiftJISに誤爆することがあるんだが、そのへんの処理を考慮してない
- 410 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 09:59:50 ]
- >>407
メールの現実を知らなさ過ぎる
- 411 名前:デフォルトの名無しさん [2010/02/12(金) 10:11:38 ]
- 1.9のencodeは青学の先生のライブラリ(transcode)じゃないの?
- 412 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 10:37:03 ]
- >>411
ttp://jp.rubyist.net/magazine/?0025-Ruby19_m17n#l76 ttp://naruse.biz/pub/20080621%20RubyKaigi%20RubyM17N.txt ttp://www.sw.it.aoyama.ac.jp/2008/pub/RubyKaigiM17N.html これか 1.9のM17Nはiconvじゃなくてtranscodeみたいだ また兄弟が増えちまった よくわからなくなってきた
- 413 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 11:04:08 ]
- 1.9のEncodingの中の人はIconvだと思ってたIconvの例外出すやんキュピーンやん
と思ってたんだが出なかった あれー、昔はIconvが例外出してなかったっけ、気のせいか irb> "@".encode(::Encoding::SHIFT_JIS) Encoding::UndefinedConversionError: "\xE2\x91\xA0" from UTF-8 to Shift_JIS irb> "@".encode(::Encoding::CP932) "?@"
- 414 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 11:08:15 ]
- うちは大家族ですから^^;
おとーちゃんビシッと言ってやりな って言うは簡単だけど結構面倒だよね…
- 415 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 11:54:27 ]
- うっぜぇ変なもん作るなよ
rubyってiconvすら実装されてない糞言語だったのか
- 416 名前:デフォルトの名無しさん [2010/02/12(金) 11:58:46 ]
- 馬鹿発見。
- 417 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 12:15:08 ]
- みてみて!
Ruby でクイックソート書いてみた。 def qsort(ary) return [] if ary.empty? v = ary.shift left, right = ary.partition{|e| e < v} qsort(left) + [v] + qsort(right) end ary.dup とかした方がいいのだろうか。 ま、いいや。
- 418 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 12:27:58 ]
- irb> Iconv.conv('shift_jis', 'utf-8', "\302\273")
Iconv::IllegalSequence: "\302\273" irb> Iconv.conv('cp932', 'utf-8', "\302\273") Iconv::IllegalSequence: "\302\273" » (» 、RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK (U+00BB)、終わりギュメ) を含むUTF-8文字列をIconvでShift_JISっぽい文字列にしたいんですが…
- 419 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 12:43:39 ]
- >>417
受け取ったArrayを中途半端に破壊してるのは……まあ確かにまずいかも アルゴリズム的な補足をするなら、単純かつ美しい実装ならそれでもいいけど、 実用上はピボットの取り方を工夫しないといけない
- 420 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 12:44:32 ]
- irb1.9> "\302\273".encode('SHIFT_JIS')
Encoding::UndefinedConversionError: "\xC2\xBB" from UTF-8 to Shift_JIS そもそもだめぽい
- 421 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 12:58:36 ]
- Ruby M17N は transcode という独自実装
Iconvは環境依存な上にWindowsだとないから、Ruby M17N で使うことはできなかった なお、libiconvのCP932周りのサポートが腐ってるのも致命的だとされた > そのかわり、NKFではできなかったような文字エンコーディングの値の保持解釈ができる > SHIFT_JISとCP932やEUC-JPとEUC-JP-MSを使い分けられる(可能性がある)のはiconvだけ nkf もできるよ > メールやHTMLが文字化けするのはヘッダのエンコーディングと実際のエンコーディングが違うからなんじゃないの? そんな根本的に違う指定ってそんなにあったっけ?
- 422 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 13:00:01 ]
- >>418
変換表に定義されてないんで、変換前に別の文字にgsubするのが正解
- 423 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 13:13:10 ]
- >>418
422が書いているようにgsubするのもありだが 変換時の戻り値で分岐するというやり方もある 詳細は下記の "Encoding::Converter#primitive_convert" の項目参照 jp.rubyist.net/magazine/?0025-Ruby19_m17n#l76
- 424 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 13:26:50 ]
- >>421
実際にメーラーを書いて運用してみたらいい
- 425 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 14:06:43 ]
- kconvの "\302\273".tosjisでは"\x91\xB9"になるな
エラー出して教えてくれたほうがマシかも
- 426 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 17:04:09 ]
- >>424
単にCP50221って話じゃないの、それだとguessは悪手なんだが
- 427 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 18:29:23 ]
- reg2 = Regexp.new("A(.*)CD(.*)EF")
str1 = "AbbccCDasdaEF" str1 =~ reg2 これで得られる$1と$2をループかなにかで 添字をつけて取得できないものでしょうか?
- 428 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 18:55:24 ]
- >>427
Regexp.last_matchとか$~のこと?
- 429 名前:427 [2010/02/12(金) 19:21:56 ]
- >>428
$~がMatchDataってオブジェクトになってるのか ありがとう、解決しました。
- 430 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 19:39:54 ]
- >>427
foo = reg2.match str1 とすれば、foo にその MatchData が入る
- 431 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 19:54:03 ]
- kconvとかnkfの話はrubyと関係ねぇ…
- 432 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 20:14:00 ]
- kconvは関係あるな
nkfは関係ないがNKFは関係あるな
- 433 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 21:08:09 ]
- Ruby1.9で勉強していた(>>1を読んでませんでしたorz)のですが、
Railsもやってみたいということで、1.8をインストールしたいです。 ですが、Synaptic(Ubuntuのパッケージマネージャ)に1.8のフルインストールパッケージがありませんでした。 なので公式サイトにあるソースコードからインストールしようと思うのですが、 うまく1.9と共存できるのでしょうか? 宜しくお願いします。
- 434 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 21:26:32 ]
- 1.8と1.9ならおおむね問題はない
ユーザーディレクトリにインストールしても動くぞ
- 435 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 21:32:17 ]
- ありがとうございます、今やったところ
1.9が/usr、1.8が/usr/local にたまたまなのか入ったので問題なさそうです。 とりあえずrubyとirbコマンドは1.8で起動するようにしました。
- 436 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 21:35:41 ]
- へえ、いつの間にか1.8なくなってたのか
- 437 名前:デフォルトの名無しさん [2010/02/12(金) 21:42:43 ]
- 参考までに、./configure するときに
1.8.7$ ./configure --prefix=$HOME --program-suffix=187 && make install 1.9.1$ ./configure --prefix=$HOME --program-suffix=19 && make install とすると $HOME/bin/ruby187 $HOME/bin/ruby19 などが出来る。 最近はコマンド一発でruby環境を切り替えられる rvm という便利なツールもある。 (多少不安定だが)
- 438 名前:デフォルトの名無しさん [2010/02/12(金) 22:14:07 ]
- このようなデータがある時に、重複したデータ削除したいです。
irb(main):001:0> address = Array.new => [] irb(main):006:0> p address [{"name"=>"taro", "tel"=>"11111111111"}, {"name"=>"hanako", "tel"=>"22222222222"}, {"name"=>"hanako", "tel"=>"33333333333"}, {"name"=>"taro", "tel"=>"11111111111"}] 重複している {"name"=>"taro", "tel"=>"11111111111"} を削除したいです。 調べてみて uniq 使えば良いかなと思ったのですが、違うようです。 わかる方、アドバイス貰えると助かります。
- 439 名前:デフォルトの名無しさん [2010/02/12(金) 22:21:44 ]
- uniqでいいように見えるんだけど。
- 440 名前:デフォルトの名無しさん [2010/02/12(金) 22:31:06 ]
- >>439
失礼しました。uniq で良かったようです。
- 441 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 23:15:20 ]
- rsenseってなんですか?
- 442 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 00:11:16 ]
- Rubyコードを補完してくれるもの
ruby rsenseでググるといろいろ情報が見つかるよ
- 443 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 00:27:21 ]
- >>442
ありがとうございます.メッセで飛んできて「使ってみたらおもしろいかも」って言われて気になってました. github.com/m2ym/rsense これですね.でもどうやって使えばいいんですか?
- 444 名前:デフォルトの名無しさん [2010/02/13(土) 00:47:08 ]
- こいつ自体はファイルとその中での位置を与えると補完候補を返すというコマンドに
すぎないので、好みのエディタのマクロでそれを呼び出して候補を表示する部分は 自作する必要があると思う。
- 445 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 03:44:36 ]
- >>444
ありがとうございます.Emacs使ってるんで色々みてみます.といってもなんかドキュメント少ないみたいですが;
- 446 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 09:23:42 ]
- $gem install newgem
したら ERROR: Error installing newgem: rubigen requires thoughtbot-shoulda (>= 2.10.2, runtime) とか出てきて さらにthoughbot-shouldaを探しても見つからないんですが newgemのインストールの仕方を教えてください $ gem --version 1.3.5 $ ruby --version ruby 1.9.1p376 (2009-12-07 revision 26041) [i386-mswin32]
- 447 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 09:34:58 ]
- gem install thoughtbot-shoulda --source=gems.github.com
- 448 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 09:36:14 ]
- 「or を伴う式をメソッドの引数に渡す場合は二重に括弧が必要となります。 」
ってどういう意味?
- 449 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 09:43:24 ]
- そういうことはしないでくださいね、の意
- 450 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 09:43:36 ]
- puts(nil or "a") だめー
puts((nil or "a")) おk
- 451 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 09:51:56 ]
- >puts (nil or "a")
a 普通にいけたけど?
- 452 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 09:55:07 ]
- それ括弧なし
- 453 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 09:57:32 ]
- >>448
それ余計な文言だよな 査読者や編集者がやっぱり必要だと思う 「メソッドの引数にする場合にはorを伴う演算部分を括弧でくくって式にする必要があります」が正解 p(false or "yes!") だと「p (false が偽だったら "yes!"」と解釈されて文法エラーになる false or "yes!" がひとつの処理の塊だとわからせるために式として括弧で括り、 (false or "yes!") なおかつ、これ全体を引数として指定してるんだということをわからせるために引数としての括弧を省略せずに使う p() にさっきのカッコつき式を適用して p((false or "yes!")) となる なお、>>451のように引数括弧相当の存在が明確な場合はエラーにならない この括弧は引数の括弧ではなく式を作る括弧だ
- 454 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 10:13:03 ]
- ありがとうございます。
もしかしてメソッド名と引数を括る括弧の間を空白で空けてはいけない? (第一引数の式を括る括弧と解釈される?)
- 455 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 10:26:20 ]
- メソッドの引数のカッコはメソッド名と分かれてはいけない
が、分かれた場合は「引数のカッコを省略して引数の全体(または一部)をカッコで括った」と解釈される おおむね同じ動作をするので、実際上はみんな深く考えてない puts("ruby") #=> "ruby" をメソッドに渡す puts ("ruby") #=> ("ruby") の結果をメソッドに渡す
- 456 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 10:36:24 ]
- ありがとうございました。
ロジカルシンキングではなくイマジネーションでってことですね
- 457 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 10:51:47 ]
- いや物凄い論理的だと思うが
引数括弧を省略するのがコンセンサスになってるのはpとかputsとかごく一部だぞ それ以外の普通のメソッドはとりあえず括弧つけとく派が多数派だ irbとかだと読み返すこともないから適当に省略しまくってるが
- 458 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 10:55:08 ]
- >>456
意味不明なときは感覚なものととらえてしまうけど、 しばらくRuby使ってなれてきたらロジカルなものだと理解できるようになるよ、がんがれ
- 459 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 11:34:23 ]
- ちょっと使ってみたんだけど、この言語(というか処理系?)、は多項式時間や指数関時間な計算をブチ転がそうとすると圧倒的に遅いわね…
なによ…まったく!
|

|