Ruby 初心者スレッド Part 41
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001京 ◆SsSSsSsSSs
2011/02/10(木) 13:47:51★注意★ Ruby 1.9.2 は初心者には若干時期早尚です。初心者には Ruby 1.8.7 を強くお勧めします。
文字エンコーディング等の外部基礎知識が必要な上、不完全対応の第三者ライブラリでの問題の切り分けが手間です。
迷う点の少ない1.8.7に習熟→おもむろに1.9.2の変更点のみ重点学習、とすればスムーズに移行できるでしょう。
関連スレや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を読め」でいいので、叩かない&怖がらせない。
・わけわかな質問にもエスパー発揮で。できれば質問の仕方を教えるぐらいで。
・自信がない回答ならその旨表明すること。誤った回答は初心者じゃ見抜けない。
0930デフォルトの名無しさん
2011/04/16(土) 02:51:24.42ttp://www.atmarkit.co.jp/news/201104/14/sora.html
0931デフォルトの名無しさん
2011/04/16(土) 02:53:59.75ま、コミッタがコミットしてRuby作っていったんだけどね。
ブロックやネストの話からコミッタにまで普通話が飛ぶか?
Rubyにまでやってきて一々嫌味いいたいんですね。
これだからPythonの馬鹿には手を焼くんだよなあ
┐(´д`)┌ヤレヤレ
0932デフォルトの名無しさん
2011/04/16(土) 07:23:17.35NetBeans なんかのほうが通常ではない動作をしている
Ruby 1.8 において、本来、使用日本語に関する情報が何もなければ、
非アスキー文字の含まれる文字列に対する String#inspect、
つまりそれを引数にとった関数的メソッド p はバイナリ表記をする
(Ruby 1.9 では日本語として区切って表示するようになってしまった、個人的には改悪)
p はデバッグ表記用メソッドなので、
人間に読めるように表示したいなら人間表示専用の puts や print 使え
なお、 ruby の起動時に -Ku や -Ks などで日本語モードが指定されてると、
String#inspect は日本語体系がそれであるとみなしてバイナリを区切って表示する
「何もしてない」のに Ruby 1.8 の p で日本語が表示できる場合、
どこかの誰かがあなたに無断でそれを指定している
(IDE内コンソールである場合は、勝手に変換している可能性すらある)
$KCODE="u" や $KCODE="s" をスクリプト内で誰かが指定していても同様
0933デフォルトの名無しさん
2011/04/16(土) 09:32:02.570934デフォルトの名無しさん
2011/04/16(土) 09:48:31.02というか具体的な入力と出力をplz
0935デフォルトの名無しさん
2011/04/16(土) 09:53:08.70=> 0
0936934
2011/04/16(土) 10:43:37.51「何が何でも無理やり」ってのはその挙動を指してるんだけど
to_iにしても10進表記にしてるわけじゃなくて単に整数にしてるだけだね
変なレスして失礼しました
0937デフォルトの名無しさん
2011/04/16(土) 11:50:12.150938デフォルトの名無しさん
2011/04/16(土) 11:53:44.23dump は p と死ぬほど相性が悪いので嫌い
まあこのへん推し進めると文字列自体にエンコーディング情報くっつける Ruby 1.9 になるんだがw
0939929
2011/04/16(土) 12:03:50.47IDEのRuby起動オプションに-Kuを追加することでpでも日本語を表示できるようになりました
わかりやすい説明ありがとうございます 勉強になりました
0940デフォルトの名無しさん
2011/04/16(土) 19:54:44.45基本は
unless ?? then
??
end
って感じで覚えていたので少し混乱しています
str.each_char do |c|
count[c] = 0 unless count[c]
count[c] += 1
end
0941デフォルトの名無しさん
2011/04/16(土) 20:06:45.75式 if 条件
は
if 条件 then
式
end
と同じだ
1行で書けて便利、という程度の意味
str.each_char do |c|
unless count[c] then
count[c] = 0
end
count[c] += 1
end
0942デフォルトの名無しさん
2011/04/16(土) 20:11:26.850943940
2011/04/16(土) 20:20:40.18お二方ありがとうございました!
0944デフォルトの名無しさん
2011/04/16(土) 20:57:19.560945デフォルトの名無しさん
2011/04/16(土) 21:55:20.78だけど
a ||= 0 は a = a || 0 ではなくて
a || a = 0
で、あってる?
0946デフォルトの名無しさん
2011/04/16(土) 22:10:03.35ttp://www.ruby-lang.org/ja/man/html/_B1E9BBBBBBD2BCB0.html
0947デフォルトの名無しさん
2011/04/16(土) 22:30:51.84無駄な代入処理を行わないための仕様なのかな?
0948デフォルトの名無しさん
2011/04/16(土) 23:57:51.72nullって書かせてくれよ
0949デフォルトの名無しさん
2011/04/17(日) 00:01:54.50というより ||= 演算子自体が
「最初に使われるときには初期化、次回以降はスルー」って処理を意識してると思われ
0950デフォルトの名無しさん
2011/04/17(日) 00:10:25.58nullとnilとの違いとかそういう話?
元々は形容詞と名詞の違いらしいし
厳密な区別なんてせずに片方で良いと思うが…
使うのがnullじゃないとヤダヤダってんなら
他にも色んな言語がやれなくなるな
NoneとかNothingとか、相当する要素は色々あるから
0951デフォルトの名無しさん
2011/04/17(日) 09:16:25.30一般的な null とは違うので nil と呼ぶ
null やundef は予約語的な「無」だが、nil は NilClass のインスタンス(オブジェクト)だ
無であるならメソッドを受け付けないはずだが、メソッドだってきちんと動作する
「とりあえず全部オブジェクトにしようぜ」というコンセプトのもと、
いわゆる null や undef を表すために作られた決め事
…まあ、だからわざわざ lisp の言葉を持ってきたんだろう
これが null オブジェクトまたは予約語 null だったら大混乱必至だったと思う
0952デフォルトの名無しさん
2011/04/17(日) 10:10:05.08ruby で,あるページを取得したのですが、
『フレーム対応のブラウザでない場合は、本画面が表示されます。』
と返ってきます。どうすれば、ページの文字列を取得できるのでしょうか??
0953デフォルトの名無しさん
2011/04/17(日) 10:12:00.37取ってきたページのFRAME要素のSRC属性のURLにさらにリクエストかければいいんじゃねーの?
0954デフォルトの名無しさん
2011/04/17(日) 10:27:52.87Pythonの悪口を言っている奴がいると聞いてすっ飛んできました。
(#゚Д゚)ゴルァ!!
http://hibari.2ch.net/test/read.cgi/tech/1302692765/85
[ プログラム ] 【Perl,PHP】LLバトルロワイヤル16【Ruby,Python】
85 名前:デフォルトの名無しさん [sage]: 2011/04/16(土) 23:46:38.57
ここ、Rubyの関係者が粘着してるだろ。
なんだよ、>>79-80 からの話題替えはw
この流れはまずいって思ったんだろうなw
Rubyのコミッタのつぶやきまとめ
http://twitter.com/nari3/statuses/57992001030860801
nari3: "Rubyの力でたのしいなかまがぽぽぽ〜ん at RubyKaigi2011"
http://twitter.com/sora_h/status/2906062620
学校で今日はちょっと別のところに自転車で移動したんだけど、そこで学校に戻る
ときに豚同級生がカギをなくして、30分位まってた後に結局ポケットにあったとか
言って皆キレる。俺は「ヴァカだろ死ねよ!!」って言っておいた。同級生いじめは
ストレス解消。 12:37 AM Jul 29th, 2009 YoruFukurouから 1人がリツイート
http://twitter.com/sora_h/status/10014881594
皇太子の子供が不登校になったと聞いて。いじめか、いい
ぞもっと(ry なんでもないです。 12:59 AM Mar 5th, 2010 Termtterから
ガベージコレクションのアルゴリズムと実装 [単行本]
"http://www.amazon.co.jp/ガベージコレクションのアルゴリズムと実装-中村-成洋/dp/4798025623"
中村 成洋 (著) 相川 光 (著) 竹内 郁雄 (監修)
0955デフォルトの名無しさん
2011/04/17(日) 10:29:20.090956デフォルトの名無しさん
2011/04/17(日) 10:40:48.32HTML に関する知識がないご様子
HTML の基本的な勉強してからやろう
そっちのほうが躓くことなくスムーズにコトが進むぞ
0957デフォルトの名無しさん
2011/04/17(日) 10:49:23.690958952
2011/04/17(日) 10:57:52.99ありがとうございます。
自分はOperaを使ってるんですが、Operaで、
[ページのソースを表示]っていうメニューをクリックすると『フレーム対応でないとだめ』
のソースが表示され、
[フレームのソースを表示]っていうメニューをクリックすると、目的のページソースが表示されます。
しかし、目ぼしいSRCは記述されておらず、ruby でどうやればフレーム内のソースを取得できるのか
困ってます。。。
どなたか、ヒントだけでもいいので、何かありませんでしょうか?
0959デフォルトの名無しさん
2011/04/17(日) 11:01:30.57まずはhtmlのframeの項の説明読もうよ。すっごい簡単だから。
0960デフォルトの名無しさん
2011/04/17(日) 11:02:51.96偉そうな講釈は結構。
0961デフォルトの名無しさん
2011/04/17(日) 11:07:06.570962デフォルトの名無しさん
2011/04/17(日) 11:07:13.08優しい先生が欲しいならお金払わないと
0963953
2011/04/17(日) 11:16:35.14ありがとうございます。取れました。
0964デフォルトの名無しさん
2011/04/17(日) 14:24:05.290965デフォルトの名無しさん
2011/04/17(日) 17:46:05.15Terminal.appを立ち上げてSTDIN.getsでユーザーに文字入力させる
のですが、日本語文字列を入力するとき、deleteキーでの消去が
文字単位にならず、何とも微妙な感じです。
1文字消すのにdeleteの打鍵が2回必要だったり、文字列によっては
最後まで消去できなかったりして(実際には消えているようですが
画面には残ります)ストレスがたまります。
ちなみにTerminalで普通にシェルを使うときには上記の問題は
でません。アドバイスよろしくお願いします。
0966デフォルトの名無しさん
2011/04/17(日) 18:00:25.74require 'readline'
while s = Readline.readline("INPUT>", true) do
p s
end
0967965
2011/04/17(日) 18:48:31.50ありがとうございました。うまく行きました。
Readlineは聞いたことがありましたが、
こういうときに使うものなんですね。
0968デフォルトの名無しさん
2011/04/17(日) 19:02:09.57TKはどのサイトから入手できますでしょうか?
gemからインストールする事は出来ないのですか?
0969デフォルトの名無しさん
2011/04/17(日) 19:15:17.18ttps://github.com/oneclick/rubyinstaller/wiki/faq#bundled_short
で、Tk が必要なのに RubyInstaller を選択したお間抜けさんは通常は Ruby/Tk Kit を使う
0970デフォルトの名無しさん
2011/04/17(日) 19:33:59.770971デフォルトの名無しさん
2011/04/17(日) 19:35:43.830972デフォルトの名無しさん
2011/04/17(日) 19:37:49.720973デフォルトの名無しさん
2011/04/17(日) 19:45:43.02お勧めされてないのには理由があるってことだな
素直にActiveScriptRuby使え
0974デフォルトの名無しさん
2011/04/17(日) 19:57:38.030975デフォルトの名無しさん
2011/04/17(日) 21:56:43.31お間抜けさんというか、多くの初心者はRuby/Tkも入ってると思うだろう
まあRubyInstaller以外でも似たようなのはあるから、どっちもどっちではあるけど
0976デフォルトの名無しさん
2011/04/17(日) 22:02:14.50いらん物までゴテゴテついてるという見方もできなくもない
0977デフォルトの名無しさん
2011/04/17(日) 22:58:27.30Tkinter込みなので、そのままTkが動かせるのはいいなぁと思う
0978デフォルトの名無しさん
2011/04/17(日) 23:08:09.250979デフォルトの名無しさん
2011/04/17(日) 23:30:18.68gem installすると
ERROR: While execution gem ... (Errno::EACCES)
Permission denied - C:/PROGRA~1/ruby-1.8/bin/rackup.bat
ってエラーがでてうまくいかないのはなぜ?
そのディレクトリは書き込み可能にしてるんだけど。
0980デフォルトの名無しさん
2011/04/18(月) 00:09:39.05新しいものを使いたいのでriを使いたいのです
0981デフォルトの名無しさん
2011/04/18(月) 01:37:56.22文脈で違うと分かるけどさ。
0982デフォルトの名無しさん
2011/04/18(月) 06:46:18.67エラーとしてはまあそのまんま
そのファイル「が」パーミッションのエラーを起こしてる
そのファイル「で」パーミッションのエラーを起こしてるんじゃないので、bin/ だけいじってもダメ
gem install -V hogehoge すると、たぶん該当フォルダの書き込み表示したところでエラーだ
いくつか方法はあるんだけど、gem をホームのフォルダに user-install してしまうというのはどう
ユーザーのホームのフォルダの中にある .gemrc という6文字ファイルの先頭が
---
gem: "--user-install"
という2行になるように編集
それ以降、gem はすべてホームのフォルダの .gem/ というフォルダの中に入る
あと、rubygems 本体の更新ができないので
C:\Program Files\ruby-1.8\lib\ruby\bin
C:\Program Files\ruby-1.8\lib\ruby\vendor_ruby
の2つの書き込み権をrubyさんかgemさんのどっちかに対してどうにしかしておく
何からの理由でユーザーインストールせずパーミッションだけで解決したい場合は、上記の2フォルダに加えて
C:\Program Files\ruby-1.8\lib\ruby\gems
の3つくらいに対して、rubyさんかgemさんが書き込み可能にしておく
0983デフォルトの名無しさん
2011/04/18(月) 10:55:08.92サンクス。
ちょっと今時間がないので、試したらまた報告します。
レス数が950を超えています。1000を超えると書き込みができなくなります。