Ruby 初心者スレッド Part 58 [無断転載禁止]©5ch.io
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2016/03/23(水) 21:16:44.36ID:6HedlyzC質問するときは、OSやRubyのバージョン、エラーメッセージを書いたほうがいいお
Ruby on RailsについてはWEBプログラミング板で
前スレ
Ruby 初心者スレッド Part 57
http://peace.2ch.net/test/read.cgi/tech/1426165733/
るりまサーチ (リファレンス検索)
http://rurema.clear-code.com/
Rubyist Magazine - るびま
http://jp.rubyist.net/magazine/
逆引きRuby
http://www.namaraii.com/rubytips/
0378デフォルトの名無しさん
2016/06/20(月) 10:29:34.75ID:OWUJ8xtdせっかくこれから新しいのを覚えるというチャンスなのに10年後廃れている
言語を学ぶのはもったいない
0379デフォルトの名無しさん
2016/06/20(月) 11:06:36.37ID:XE/E5M6Rそうですね、何で最初から出版社のホームページを見なかったんだろう…
>>378
いや、実はRubyが学びたいのではなくて人工無能を作成して将来、人工知能の勉強へとつなげられればと思って勉強しています。
そもそもなんでRubyなのかというと、10年ほど前に「恋するプログラムRubyでつくる人工無能」という本を購入しまして、
最初は「おお、面白い」と呼んでいたのですが、その内、配列?ハッシュ?インスタンス変数?とつぎつぎにわけのわからない
言葉がでてきました。これはもう本格的にRubyってやつを勉強しないとどうにも読めないなと考えて一念発起して、Rubyの解説書を
買いまくりました。ところがこれがさっぱり何を言ってるのかわからない…。なんせ、プログラムと言えば大学の時にちょろっとベーシックを
かじった程度でそのまま放置でしたから。
とりあえず、3冊買って読みましたが、「これは自分には無理だ」とあきらめ、数年が過ぎたのです。ところが幸か不幸か、今年は自由な時間が
取れまして(理由は深くは突っ込まないでください)、ふと本棚を見ると、ああこんなの買ったなあと思い出しました。よし、せっかくの機会だ。
なんとかがんばってRubyってやつをマスターしてやろうと今に至った次第です。とにかく、なんとしても「恋するプログラムRubyでつくる人工無能」
という本が理解できるようになりたいです!
長々とすみませんでした。
0380デフォルトの名無しさん
2016/06/20(月) 12:33:22.39ID:6a0VacLi0381デフォルトの名無しさん
2016/06/20(月) 15:04:19.05ID:zSeivZg9> Rubyは、Windows対応で負けている。
> GUIに対応させるのは、面倒
気になったので試してみました
mswin版は1.8で少し調べてオワコンっぽい感じがしたので
動作確認したものはx86-mingw版のみで以下の組み合わせ
[2.3] fxruby gtk2 gtk3
[2.2] fxruby qtbindings-4.8.6.1 gtk2 gtk3
[2.1] fxruby qtbindings-4.8.6.1 gtk2-3.0.7 gtk3-3.0.7
[2.0] fxruby qtbindings-4.8.6.1 gtk2-3.0.7 gtk3-3.0.7
[1.9] fxruby qtbindings-4.8.3.0 gtk2-2.2.0 gtk3-2.2.0 wxruby-ruby19
[1.8] fxruby qtbindings-4.8.3.0 gtk2-1.2.1 wxruby
fxruby : まったく問題なし。
wx : 2系で使えないのが残念。
qt : QtSDKが300MB超とデカイのが気になるところ。
gtk : 依存パッケージのバージョン解決が甘いので
(gtk3自体はruby1.8に対応しているが依存パッケージがruby>=1.9を求めるので不可だったり
依存パッケージのバージョン上限が設定なされていない為
--ignore-dependencies, gem sp xxxなどしながら個別に入れる必要があった)
古いバージョンを使う時には少々手間がかるのがネック。
自分の場合は慣れたqtかgtkかの二択だけど
fxrubyが http://rubyinstaller.org/downloads/ にも明記されてるぐらいなので無難だと思う。
0382デフォルトの名無しさん
2016/06/20(月) 16:37:55.79ID:RVn5oxXAその本読んだけど
無脳本は目標として良いと思うよ
人工知能は最先端だから超難しいけど
人工無脳は基本が分かれば難しくない
マルコフ連鎖だけちょっと
何やってるか分かりにくいけど
ハッシュでしりとりみたいなこと
させる仕組みは単純で感心する
コードを読んで動作をイメージ
できるようになれば分かる
0383デフォルトの名無しさん
2016/06/20(月) 16:41:50.02ID:RVn5oxXAGUIキットは本の(Visualu Ruby)にこだわらず
今の新しいライブラリ使った方が便利
0384デフォルトの名無しさん
2016/06/20(月) 16:47:39.38ID:78XmmaUtもしこれが本当なら
かなり恥ずかしい部類の
誤植だな
0385デフォルトの名無しさん
2016/06/21(火) 12:37:52.56ID:na89rYIQ0386デフォルトの名無しさん
2016/06/21(火) 13:24:02.94ID:LE9F52CG首吊ってくるレベル
0387デフォルトの名無しさん
2016/06/21(火) 17:03:07.87ID:W3C4RKeOありがとうございます。まあ、他の言語を試せばいいのでしょうけど、こうやってわからなかったら次の言語とやってると、同じことがあった時にまた引越しなきゃならなくなる
のでがんばってRubyをマスターすることにします。
さて、「Rubyの絵本」のループの中断まで勉強が進みましたが、以下のコードの違いがよくわかりません。どなたかご教授よろしくお願いします。#の部分は自分が理解しやすいように
かってにコメント文章をつけたものです。よろしく願します。
a = 0
while a < 5
if a == 2
a = 10
next
end
print(a, "")
a += 1
end
aの値がwhile文の条件に合致している間はループ。
(1回目ループ)aに0が入っているが、if文が成立しないのでnextの下へ行き、a0と表示されてaが1になり、2回目のループに入る。
(2回目ループ)aに1が入っているが、if文が成立しないのでnextの下へ行き、a1と表示されてaが2になり、3回目のループに入る。
(3回目ループ)aに2が入っているが、if文が成立するのでaの値が10になるが、nextが発動し今の処理はなかったものとされ、aの値は2のまま?
似たようなプログラムがredoでもあるのですが、そちらはまあなんとか理解できます。問題はnextのほうで、今一つ理解できません。a=2のままなら無限ループするんじゃないかと自分では思ったのですが、
実際の出力結果は
a0
a1
となっているので、何か勘違いをしているのだと思いますがそれがなんなのかわかりません。長文申し訳ありませんがよろしくお願いします。
0388デフォルトの名無しさん
2016/06/21(火) 17:27:16.66ID:rdnhr1yO1 と出力してから a += 1 によって a == 2 になって2行目へ行く。
次のループでは a == 2 なので a == 10 になってまた2行目へ行く。
a < 5 は false なので while〜end は実行されずに終了する。
0389デフォルトの名無しさん
2016/06/21(火) 17:28:05.78ID:397g3bwN言語の引っ越しはしないで正解
C++、Javaとか他のメジャーな言語は
だいたいRubyより難しいよ
実行速度を速くしたいときとかに使う
コードの方は
nextについて「勘違いをしている」
nextの後whileの条件節で
偽になるから無限ループしない
0390デフォルトの名無しさん
2016/06/21(火) 17:29:54.69ID:LE9F52CG0391デフォルトの名無しさん
2016/06/21(火) 17:36:43.51ID:397g3bwN5でもいいよ
>nextが発動し今の処理はなかったものとされ
これが勘違いね
0392デフォルトの名無しさん
2016/06/21(火) 17:39:26.71ID:rdnhr1yO元は print(a, "\n") だったのかな
0393デフォルトの名無しさん
2016/06/21(火) 18:01:59.82ID:MNNlgPEV0394デフォルトの名無しさん
2016/06/21(火) 18:09:39.05ID:mjvOmEo60395デフォルトの名無しさん
2016/06/21(火) 18:10:26.89ID:W3C4RKeOそっか、なるほど!条件文がfalseになってるからwhile文のendまですっ飛ばされるわけですね!
すっごくよくわかりました。ありがとうございます。「a=10がなかったことになる」のではなくて、
a=10のままwhile文の条件文を吟味するんですね。やっとわかりました。
それから今頃なんだと怒られるかもしれませんが、今一度本を読み返してみたら、nextとredoで
戻る場所が違ってたんですね。めんぼくない。redoだと条件文にジャンプしないからa=10のまま出力される
というわけですね。なんでもいいけど、難しいなあ。皆さんよくこんな複雑なものをマスターできましたね。
自分の頭が悪いのかな。まあ、とにかくがんばります!そのほかの皆さんの回答もありがとうございました。
0396デフォルトの名無しさん
2016/06/21(火) 19:01:29.78ID:VP/Q8JMz元の本を知らんからアレだが…
あとRubyは簡単ではないと思う
それなりのことをサクッとやるのは簡単だけど
0397デフォルトの名無しさん
2016/06/21(火) 19:08:43.11ID:rdnhr1yOまあ俺ならこう書くが
5.times{|i|
break if i == 2
puts i
}
0398デフォルトの名無しさん
2016/06/21(火) 19:21:50.55ID:gJMymMte5.times{|_|-~p(_)!=2||break}
0399デフォルトの名無しさん
2016/06/21(火) 19:48:13.62ID:mn7QpJSfわけワカメ
0400デフォルトの名無しさん
2016/06/21(火) 20:30:33.33ID:gJMymMtep *(0..5).first(2)
0401デフォルトの名無しさん
2016/06/22(水) 06:25:24.35ID:jdKVcriHdef a
p 'A'
end
end
module B
def b; a; end
def a
p 'B'
end
end
class X
include B
include A
end
p X.ancestors #=> [X, A, B, Object...]
p X.new.b
"A"
"A"
なぜ、2回もAが表示されたの? Bが表示されない
モジュールB内で、aを呼んだときは、静的スコープのB.a を読んでくれないな。
常に動的に、X, A, B の順に、aを探すのか
「メタプログラミング Ruby」1.6章より
0402401
2016/06/22(水) 06:34:16.68ID:jdKVcriH静的スコープのB.a を呼ぶ方法はないの?
動的言語だから、無理なのか?
0403デフォルトの名無しさん
2016/06/22(水) 08:04:36.14ID:AQa0dSs+ひっかけ問題かな。p の数を数えてみろ。
0404デフォルトの名無しさん
2016/06/22(水) 08:07:48.65ID:AQa0dSs+C++ みたいなクラス名修飾は無いね。別の名前を付けるしか
0405デフォルトの名無しさん
2016/06/22(水) 11:45:54.25ID:yBOVYSweその考え方は良くない
0406デフォルトの名無しさん
2016/06/22(水) 12:30:51.61ID:3DCeoZi+わけワカメ
0407デフォルトの名無しさん
2016/06/22(水) 17:17:51.11ID:7oRMeHhGfoo bar, baz { 0 }
これって動作違うのな、テスト書いてたらエラー出てびっくりしたわ
0408デフォルトの名無しさん
2016/06/22(水) 18:15:16.93ID:gUQq/XMB考え方として良くない
短くなっても保守しにくくなる
0409401
2016/06/22(水) 20:22:56.84ID:jdKVcriH自己レス
>p X.new.b
ここにも、p を付けていたから、2回表示された
>>407
意味わからん。カッコで囲んで
0410デフォルトの名無しさん
2016/06/22(水) 20:31:09.09ID:1DvIaRNW>モジュールB内で、aを呼んだときは、静的スコープのB.a を読んでくれないな。
>常に動的に、X, A, B の順に、aを探すのか
p X.ancestors #=> [X, A, B, Object...]
この結果を見れば明らかで、B, A の順序で include したのだから
Rubyの仕様に従った振る舞いな訳だけど、何が問題なの?
リファレンスを熟読してRubyの仕様を理解したほうがいいと思うよ
基礎ができていないのにメタプログラミングに手を出すのが挫折の原因だ
>>402
> 静的スコープのB.a を呼ぶ方法はないの?
ないよ
やるならクラス X の定義において、 include の順序を逆にする
> 動的言語だから、無理なのか?
いや、動的言語のRubyでも(モジュールやクラスを含む)定数の宣言は静的だよ
【ここで静的とは、一度宣言した値を後から(破壊的に)更新できないことを意味する】
できない理由は、上で書いたように「Ruby の仕様」だから
そのRubyの仕様に不満があるなら、多重継承とその問題点、および Mix-in が考案された
背景を勉強してから、Rubyコアへ次期Rubyの仕様変更案として提案すればいい
0411デフォルトの名無しさん
2016/06/22(水) 21:15:23.44ID:os3fAditいやあるだろ
普通は使わんやり方だけど
0412デフォルトの名無しさん
2016/06/22(水) 21:15:23.89ID:V2EBWOtThttp://rurema.clear-code.com/2.3.0/doc/spec=2fcall.html
リファレンスにがっつり書いてる
0413デフォルトの名無しさん
2016/06/22(水) 21:16:15.70ID:k2RSEIyn0414デフォルトの名無しさん
2016/06/22(水) 21:19:37.78ID:49vA2QspいまだにProcを使うツボがよくわからん
メソッドを新たに定義するのではダメなの?
0415デフォルトの名無しさん
2016/06/22(水) 22:18:19.16ID:Q+XBk88Y本来人間が直接触るもんじゃないので気にしなくていい
Rubyはメタプログラミングだのと抜かして中身を弄り回そうとする馬鹿が多いが、
あんなのはバッドノウハウであってカッコイイことでも何でもない
0416デフォルトの名無しさん
2016/06/22(水) 22:40:21.74ID:V2EBWOtTメソッドはクラスに属してなきゃいけないけど、それだとめんどくさいときとかに使える
0417401
2016/06/22(水) 22:45:04.32ID:jdKVcriHdef b; a; end
def a
p 'B'
end
end
静的言語では、bを呼んだら、同じモジュール内の、aを呼ぶのが自然。
モジュールBのbを呼んで、次にaを呼ぶ際、異なるモジュールのaを呼ぶとは普通、思わないだろw
モジュールBを書いている奴は、当然同じモジュール内の、b・aを想定している
これぐらい静的スコープから、解決してほしい
0418デフォルトの名無しさん
2016/06/22(水) 22:51:38.89ID:1DvIaRNWすぐに思いつくのは2つのケース
1. メソッドへ複数のブロックを渡したい時
2. メソッド定義するまでもない短い処理を定義したい時
1. は自明だと思うから省略するとして、2. の例:
複数のイベントに応じてアクションを実行したい時、
Actions = {
:eventA => Proc.new {|x| …. },
:eventB => Proc.new {|x| …. },
:
}
とHashでテーブル化しておいて、
Actions[event].call(x)
と呼び出す
アクションの中身が複雑で長いコードならば可読性のある命名で
メソッドを定義すべきだろうけど、たとえば変数に代入するだけとか
単にライブラリ関数を呼ぶだけなんてケースでメソッド定義は面倒だよね
そんな時にはProcを使って、明示的にブロックオブジェクト(=クロージャ)を生成する
(ただし、個人的には Proc.new ではなく lambda といふ記述を好むけどね)
0419デフォルトの名無しさん
2016/06/22(水) 22:54:00.17ID:jdKVcriHproc, lambda, block(&) は、コード・処理を持ち運んで、後で、call で実行できる。
blockは、yield で、callback してもらえる
以下は、即時実行っていうこと?
proc{〜}.call
lambda{〜}.call
0420デフォルトの名無しさん
2016/06/22(水) 23:09:35.89ID:1DvIaRNWだから静的言語とか静的スコープとかは関係ないよ
Mix-in とは無関係で、ただ単にモジュール関数を呼びたいのなら、
以下のように書きなさい
module B
module_function
def b
a
end
def a
p 'B'
end
end
詳しくは「Ruby モジュール関数」でググりなさい
>>410を繰り返すけど、リファレンスから module_function を見つけられない
君のレベルでメタプログラミングに手を出すのは子供じみた無茶な背伸びだよ
それよりもっと基本的なRubyのプログラミング技法を学んでからにしなさい
0421デフォルトの名無しさん
2016/06/22(水) 23:40:23.32ID:V2EBWOtTあくまで主役はXなんだから、Xから見て早く見つかる方を選ぶのは当然の話
静的言語の Scala にも Module と似たような trait があるが、結果は Ruby と変わらない
trait C {
def a: String
}
trait A extends C {
override def a = "a"
}
trait B extends C {
def b = a
override def a = "b"
}
class X extends A with B
class Y extends B with A
(new X).b // => "b"
(new Y).b // => "a"
0422デフォルトの名無しさん
2016/06/22(水) 23:42:12.64ID:gUQq/XMBコールバックに使う
0423デフォルトの名無しさん
2016/06/23(木) 08:10:59.54ID:LmS7lhU+無名関数の代わりに使う
0424デフォルトの名無しさん
2016/06/23(木) 21:24:51.44ID:O+dpjAURそれともいっそ、管理者が登録するデータベースとユーザーが変更するデータベースを同じにしてアクセス権限で表示するビューを切り分けた方が良いでしょうか?
アドバイスよろしくお願いします。
0425デフォルトの名無しさん
2016/06/23(木) 21:54:12.06ID:M8iyAzNM0426デフォルトの名無しさん
2016/06/23(木) 23:16:42.11ID:O+dpjAURどの本読んでもそう書いてあったんですがこの場合で使えないということはないですよね?
0427デフォルトの名無しさん
2016/06/24(金) 00:39:46.72ID:gxtxbzXVいつも失敗する
0428デフォルトの名無しさん
2016/06/24(金) 08:17:33.76ID:xEd+6tYGその際、中間にテーブルを作って、双方のキーを入れる
A, (A.key, B.key), B
0429デフォルトの名無しさん
2016/06/24(金) 10:12:39.00ID:F8DC/AtK0430デフォルトの名無しさん
2016/06/24(金) 10:13:24.55ID:AFfOfH8Vそもそも設計が良くない気がするんだが
0431デフォルトの名無しさん
2016/06/24(金) 11:00:41.58ID:Ua7mp3z0テーブル統一して1対多でいくことにしました。
0432401
2016/06/25(土) 16:08:58.21ID:4ZuZDTqbmodule A
class AA
def a; p 'A'; end
end; end
module B
class BB
def b; a; end
def a; p 'B'; end
end; end
class X
include B; include A
BB.new.b
end
p X.ancestors #=> [X, A, B, Object...]
X.new #=> "B"
a()をクラス内に入れたら、メソッド探索順では、Aモジュールの方が先なのに、
A::AA.a ではなく、B::BB.a が呼ばれるようになった
b()・a()が同じクラス内なら、呼び出し順は、モジュール探索順よりも、クラス内が優先される
0433デフォルトの名無しさん
2016/06/25(土) 17:51:57.20ID:4KOaD2ntA をインクルードしても A::AA のメソッド探しに行ったりしないよ
0434uy ◆e6.oHu1j.o
2016/06/27(月) 12:10:54.85ID:fzKuFJZphostsを以下のように書き替え( 広告NG用
http://notepad.cc/share/R0lOXB8Zzs
以下のようなプロキシーサーバーをたてて繋いでブラウジングをしていたところ
https://ideone.com/JN6VDO
rubyが実行を停止しました
http://i.imgur.com/4gxFT71.png
OS:Win10
ブラウザ:Firefox
administrator:uy
0435uy ◆e6.oHu1j.o
2016/06/27(月) 12:12:44.87ID:fzKuFJZpRailsInstaller使ったか?
gem install railsで普通にインストールが成功する可能性は、
ゼロではないけど、もはや幻想
0436uy ◆e6.oHu1j.o
2016/06/30(木) 08:28:51.01ID:U+B64GZ8https://ideone.com/9nWuIF
rubyのこの辺のスコープは不満ある
直される事はないだろうけど
rubyでしかやらないようなコードに分かりやすいルール作るのが難しいから
結局避けて書いていく
積極的には使われない癖に無駄に複雑な仕様だけが
class、module、include、extend 周りに拡がる
0437uy ◆e6.oHu1j.o
2016/06/30(木) 08:40:38.48ID:U+B64GZ8補足:
積極的には使われないといったのは、
この辺のklassを、上下に変数が行き来して、
それを理解しながら書くようなコードの事
include extend が飛び交う場所のメソッド・変数には闇が拡がる
この闇を扱う知識はしかも、他言語では使いようもないruby特有に複雑になってる闇の知識だから
わけのわからなくなってるスコープを制御しようとするのは無駄
0438デフォルトの名無しさん
2016/06/30(木) 09:06:35.89ID:bMW7pQBg衝突しないように付けること
0439デフォルトの名無しさん
2016/06/30(木) 09:26:09.93ID:+cgjiVYzhttp://docs.ruby-lang.org/ja/2.3.0/method/main/s/using.html
0440デフォルトの名無しさん
2016/06/30(木) 20:56:11.15ID:prI+ToNWんなこたーない。使っている人は使っている。
ただ、ruby2.1以上しか動かない縛りがあるので、古い環境でも動くようにみんな配慮してしまっているだけ。
個人的にはアスタリスク2回でハッシュを受け取る
def foo(a:, **b); p a, b end
foo({a: 1, b: 2})
結果
# 1
# {:b=>2}
とかの方がよっぽど見かけたことないです。
どなたか使ったことある方いらっしゃいますか?
0441デフォルトの名無しさん
2016/06/30(木) 21:26:27.67ID:0Yz92fUm0442uy ◆e6.oHu1j.o
2016/06/30(木) 21:49:00.82ID:dzWCBRc40443デフォルトの名無しさん
2016/07/01(金) 00:48:35.08ID:ECjG4IrI> new A().view();
これがなぜ通るのですか
class A
{
public void view()
{
Console.WriteLine(
0444デフォルトの名無しさん
2016/07/01(金) 07:57:19.80ID:CYpkmvov一つづつ整理して考えよう
・なぜそれが通らないと思ったのか?
・そのコードは何の言語で書かれたコードか?
・書き込む前にこのスレのタイトルを確認したか?
・確認したとすれば、ここで質問した理由は何か?
0445デフォルトの名無しさん
2016/07/01(金) 08:50:38.16ID:QEi+HiDI生のjavascript使いたいのでcoffescriptとかいうのは使いたくないのですが
0446デフォルトの名無しさん
2016/07/01(金) 09:48:09.75ID:rLMTR09R普通に *.js.coffee を置くところに *.js を置けばいい
0447デフォルトの名無しさん
2016/07/01(金) 19:03:05.10ID:QEi+HiDIありがとうございます。
試してみます。
0448デフォルトの名無しさん
2016/07/02(土) 15:30:39.35ID:rfELLhTBirb(main):1:0* irb(main):2:0* irb(main):3:0* irb(main):4:0* irb(main):5:0* irb(main):6:0*
ってのが延々と出力されるんだけど何が起きてるんだろう?
0449デフォルトの名無しさん
2016/07/02(土) 16:12:53.91ID:0c7wAYOMreturn "#{input}?A?A?E?E?H"
上記の部分を
return "#{input}って何?"
に書き直すとEncording::CompatibilityErrorが出てしまいます。ユーザーの入力場面でローマ字のままで
入力した場合は問題ないのですが、漢字やひらがなが入っていると、エンコードのエラーが出てしまいます。
いろいろと調べてみたのですが、うまい方法が見つからなくて困っています。どなたかご教授いただけないでしょうか?
なお、文字化けしたままの状態であれば、漢字・平仮名入力でもエラーは出ません。よろしくお願いします。
0450デフォルトの名無しさん
2016/07/02(土) 16:17:12.16ID:rfELLhTB0451デフォルトの名無しさん
2016/07/02(土) 16:25:16.33ID:0c7wAYOMすみません、質問の意味が理解できません。ですが、プログラムの先頭には#! ruby -Ksとあります。
0452デフォルトの名無しさん
2016/07/02(土) 16:27:47.01ID:PNWyJIIt0453デフォルトの名無しさん
2016/07/02(土) 16:38:44.44ID:+zIpsemSinputに入る文字列とファイルのエンコードはなに?ってことだと思います
0454デフォルトの名無しさん
2016/07/02(土) 16:44:01.84ID:0c7wAYOMすみません、それもわかりません。面目ない・・・
0455デフォルトの名無しさん
2016/07/02(土) 16:44:17.44ID:rfELLhTB-KsってことはエンコーディングとしてShiftJISを指定しているわけだけど
ソースファイルはちゃんとShiftJISで保存できてる?
更にinputにShiftJIS以外の文字列が来てるんじゃない?
例えばWindowsだったらコマンドプロンプトで入力するとShiftJISじゃなくてWindows31Jだからね
0456デフォルトの名無しさん
2016/07/02(土) 16:52:56.82ID:0c7wAYOMご指摘にあるようにShiftJIS、Windows32Jなどググってみたのですが、どれも書いてあることが理解できませんでした。
もうちょっと基本的な用語を調べなおして、改めて質問させていただきます。ありがとうございました。
0457デフォルトの名無しさん
2016/07/02(土) 16:58:35.24ID:SUhI6wBFUnicodeとかUTF8とかの単語の意味を調べてからまたおいで
0458デフォルトの名無しさん
2016/07/02(土) 16:58:41.18ID:UusWQPpkRuby の実行環境としても、窓OSは向いていない。
0459デフォルトの名無しさん
2016/07/02(土) 17:01:53.20ID:rfELLhTBinput を input.encode(Encoding::Shift_JIS) に書き換えればうまくいくかも
windowsで日本語を扱うのって面倒だよね
0460デフォルトの名無しさん
2016/07/02(土) 17:36:48.49ID:NHPFDAI+0461デフォルトの名無しさん
2016/07/02(土) 19:59:27.04ID:26rC20dwどの言語でも初心者には難しい
Rubyはマシな方だと思う
0462uy ◆e6.oHu1j.o
2016/07/02(土) 20:11:17.24ID:m6W0ip760463uy ◆e6.oHu1j.o
2016/07/02(土) 20:14:26.31ID:m6W0ip76ruby -v
irb -v
0464デフォルトの名無しさん
2016/07/02(土) 22:24:30.36ID:0c7wAYOMアドバイスありがとうございます。試してみましたがうまくいかないようです(なんか変なことしているかも)。
ちょっと、このエンコードという問題はだいぶ難しそうなので、とりあえずRubyの基本を先にしっかり勉強したいと思います。
もっとも直近の目標が人工無能なので、遅かれ早かれ絶対に克服しなければならない問題なのは確かですが…
いずれにせよ、理解できないからと言っていつまでも足踏みしている暇はないので先に行きます。他の皆さんもありがとうございました。
0465デフォルトの名無しさん
2016/07/02(土) 22:33:37.50ID:no/g4eo0paiza.IO, codepad などのサイトで、ブラウザを使って、プログラミングすれば簡単
0466デフォルトの名無しさん
2016/07/02(土) 22:41:05.68ID:no/g4eo0Unix系は、UTF-8。
Windowsは、shift-jis, cp932(Windows31J)
改行コードも異なる
shift-jisに、Windowsだけの環境依存文字(�@、丸で囲んだ数字など)を、加えると、cp932となる
Windowsだけの環境依存文字を使うと、shift-jisよりも、バグる確立が大きい
0467デフォルトの名無しさん
2016/07/02(土) 22:50:14.62ID:0c7wAYOMありがとうございます。もういいや、と思って別のことやろうと思いましたが、念のためTeraPadで打ち込んでみたら右下にエンコードがでました。
「UTF-8N」とあるようです。ところで、自分はきれいで見やすいとNETで評判の?SublimeText3を使っているんですが。エディタによっても結構違うんですね。
465さんのpaiza.IOみたいなエディタがあると便利なんですが、まあないものねだりしてもしょうがない。あまり、自分の質問だけでスレッドを私物化するのも
申し訳ないので、ここらでクローズさせていただきます。重ね重ねのアドバイスありがとうございます。
0468デフォルトの名無しさん
2016/07/03(日) 06:34:41.72ID:KkvVurgp-EShift_JIS:Windows_31Jとするべきでは
0469uy ◆e6.oHu1j.o
2016/07/03(日) 11:25:14.56ID:VJyaYSRj0470デフォルトの名無しさん
2016/07/03(日) 17:04:45.03ID:l9Pdm4ZBG:Ruby23-x64/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in'require':cannot load such file -- vr/vruby(LoadError)
ネットでも調べてみたのですが、なかなか情報がヒットしません。よろしくお願いします。
0471デフォルトの名無しさん
2016/07/03(日) 17:07:35.45ID:KkvVurgprequire_relativeとしなくちゃいけないところがrequireになってるんだろうね
0472デフォルトの名無しさん
2016/07/03(日) 17:15:42.70ID:T6bq1Tjnもう vruby なんて使うべきではないね
昔は何個かcontributeしたんだけどなー、懐かしい
0473デフォルトの名無しさん
2016/07/03(日) 17:17:00.26ID:l9Pdm4ZBありがとうございます。ネットで検索したところ、2つの方法があるらしく。以下の内容を試してみました。
1:require 'vr/vruby'のvrの前に./をつける
2:require 'vr/vruby'のrequireをrequire_relativeとする
いずれもうまくいかず、途方に暮れています。
0474デフォルトの名無しさん
2016/07/03(日) 17:19:52.23ID:KkvVurgp0475デフォルトの名無しさん
2016/07/03(日) 17:21:08.98ID:l9Pdm4ZB今、勉強している本の内容が古くて、本の内容がvrubyを使うことを前提にしているので弱っています。
本を買った時に諦めないで最後まで勉強していればなーと、いまさら言っても遅いですが。
0476デフォルトの名無しさん
2016/07/03(日) 17:25:59.34ID:T6bq1TjnRubyでGUIでしかもWindowsでってのは鬼門でしかないからね
どうしてもWindowsでGUIってことなら素直にC#使うべきだよ
0477デフォルトの名無しさん
2016/07/03(日) 17:27:02.20ID:KkvVurgp■ このスレッドは過去ログ倉庫に格納されています