トップページ⇒tech
1002コメント364KB

Ruby 初心者スレッド Part 58 [無断転載禁止]©5ch.io

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2016/03/23(水) 21:16:44.36ID:6HedlyzC
プログラミング言語Rubyについての、初心者向けスレです。質問・要望・雑談などどうぞ。
質問するときは、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/
0176デフォルトの名無しさん2016/05/17(火) 19:24:53.34ID:0ndBRKVS
はいそこで押し続ける!
ひとつ、ふたつ、みっつ、よっつ、いつつ!
0177デフォルトの名無しさん2016/05/17(火) 23:42:54.72ID:cKpkeDSB
rubyってウェブアプリやウェブサービスのイメージが強いんだけど、それ以外ってどんなとこに使われてるの?
0178デフォルトの名無しさん2016/05/17(火) 23:54:52.00ID:PFL7J48p
実用ではウェブがほとんどじゃね
0179デフォルトの名無しさん2016/05/18(水) 00:11:20.05ID:ot/2Utg3
vagrant や fluentd など普通のスクリプトとしてもよく使われてるよ
0180デフォルトの名無しさん2016/05/18(水) 00:47:52.39ID:K/5XOq2K
個人的にいままでCやってて
最近ruby始めたばっかりなんですが
rubyの変数って一般的な言語における変数とは全然概念が違うんですね…
i = 5
i = i +1
ってやると
一つめの実行式で5というオブジェクトにiという付箋をつける
二つめの実行式でiの付箋を6というオブジェクトに貼り替えるって感じでいいんです?

なんか他の言語とは概念が逆な感じで驚いてます
0181デフォルトの名無しさん2016/05/18(水) 00:51:31.83ID:ot/2Utg3
>>180
え?
有名どころの言語でも大体一緒だけど…
0182デフォルトの名無しさん2016/05/18(水) 00:59:26.97ID:K/5XOq2K
>>181
あれ、そうなんですか…
C言語だと宣言するとメモリのスタック領域に変数型分の領域が確保されて
その中身の数値が入れ替わるっていう風に習ったので…

逆にCの方が特殊と思った方がいいんでしょうか…
0183デフォルトの名無しさん2016/05/18(水) 01:30:34.37ID:BFM6WmVS
>>182
考え方が違うだけで起こることは大体一緒。
代入は代入で変わらないけど、代入するものが必ずオブジェクトなだけ。
0184デフォルトの名無しさん2016/05/18(水) 04:34:37.35ID:BFM6WmVS
>>182
混乱の元は、数値、文字列がオブジェクトだってところに
あるんだと思うけど、そこは慣れたら逆にわかりやすい。
0185デフォルトの名無しさん2016/05/18(水) 11:13:44.00ID:tltkMhqB
rubyの良いところでもあり悪い部分でもある場所
0186デフォルトの名無しさん2016/05/18(水) 14:49:34.18ID:yDy1hpmH
格納場所や値のコピーをプログラマに強く意識させるという意味では
Cが特殊
0187デフォルトの名無しさん2016/05/18(水) 16:55:42.20ID:u7J2zmgl
>182
rubyのintはobjectでありかつprimitiveでもある
0188デフォルトの名無しさん2016/05/18(水) 22:39:52.30ID:fCMOVnrJ
practical object-oriented design in ruby
この本は初心者にはむずかしいですか?
英語は大丈夫です
0189デフォルトの名無しさん2016/05/18(水) 23:33:07.26ID:+FiiBQuR
Ruby はもともと英国の開発者が作った言語だからな
英語で勉強したほうがいい
0190デフォルトの名無しさん2016/05/19(木) 01:35:45.58ID:6QrHkYGV
Java, JS などは、数値などのprimitive型(4, 8バイト)があって、
primitiveにメソッドを呼ぶと、オブジェクトに変換する。
Boxing, Unboxing

ただし、ループ内で大量に変換されると遅くなるため、この変換は避けた方がいい

一方、Rubyではすべてがオブジェクトだから、1つに付き、16バイト?を使うが、変換はしない。
ただ、数値などは直接ポインタに納めて、メモリを節約している
0191デフォルトの名無しさん2016/05/19(木) 01:38:12.77ID:sIW2z0LA
>>189
なんで初心者に嘘ついてんだ。

>>188
元々rubyは日本出身の言語で日本語の情報が充実してるから、
rubyに限っては日本語書籍の方が良い可能性もある。
その本は読んだ事無いから知らないけど
0192デフォルトの名無しさん2016/05/19(木) 07:32:25.18ID:l7SG7Alg
【OS】 Mac OS X 10.8.5 (x86_64) ruby 1.8.7です。
Dir.glob("/Users/xxxxx/Desktop/**/*", "/Users/xxxxx/test/**/*") do |filename|
記述すると
test.rb:11:in `glob': can't convert String into Integer (TypeError)
でエラーになります。片方だけにするとエラーはないのですが、
Dir.globで複数ディレクトリの指定は出来ないのでしょうか?
0193デフォルトの名無しさん2016/05/19(木) 08:06:41.37ID:JUfHMrn+
なんで勝手に引数を増やせると思ったのか謎だけどこれ読めば?
http://docs.ruby-lang.org/ja/1.8.7/method/Dir/s/=5b=5d.html
0194デフォルトの名無しさん2016/05/19(木) 08:46:18.92ID:JUfHMrn+
一応これで動くよ
Dir.glob("/Users/xxxxx/Desktop/**/*\0/Users/xxxxx/test/**/*")
Dir["/Users/xxxxx/Desktop/**/*", "/Users/xxxxx/test/**/*"]
0195デフォルトの名無しさん2016/05/19(木) 16:57:17.84ID:l7SG7Alg
>>193
>>194
ありがとう。ググった記述は1.9.xのコードだったということですね。
0196デフォルトの名無しさん2016/05/19(木) 17:09:52.29ID:l7SG7Alg
ちなみに1.8.7にはDirメソッドないみたいだし、[か(か不明。[が正しいのかもしれないが。
0197デフォルトの名無しさん2016/05/19(木) 17:20:38.74ID:JUfHMrn+
いや、(おそらく)どのバージョンでも>>192はエラーになるし
(おそらく)どのバージョンでも>>194は動くよ
あとDirはメドッソ名じゃなくてクラス名だよ
たぶんDir.[]のことを言いたいんだろうけど
0198デフォルトの名無しさん2016/05/19(木) 20:10:11.72ID:uWcto14Q
とりあえず 1.8.7 はもう化石だし、対応してないライブラリも多いし、さっさとバージョンアップしないとね
0199デフォルトの名無しさん2016/05/19(木) 20:15:57.16ID:X6Uyl1SE
>>180
> …… 感じでいいんです?

そんな感じでだいたい合っているよ
あと以下でも引数渡しにおける変数の概念が丁寧に解説されている

・Rubyist Magazine - 値渡しと参照渡しの違いを理解する
 http://magazine.rubyist.net/?0032-CallByValueAndCallByReference

> なんか他の言語とは概念が逆な感じで驚いてます

たしかにC/Pascal/Fortran/Cobolといった手続き型言語における
変数の概念とは大きく違っているね
ただしRubyにおける変数の概念は、Lisp/MLといった(破壊的代入を許容する)
関数型言語における変数と類似している
というか、オブジェクト指向Lispを手続き型言語風の構文糖で包んだのが
Rubyの本質なんだと思う

・Lisp から Ruby への設計ステップ | プログラマーズ雑記帳
 http://yohshiy.blog.fc2.com/blog-entry-250.html
0200デフォルトの名無しさん2016/05/19(木) 20:46:38.83ID:MKa/yUEp
エクセルをrubyでうごかそうとおもったら、VBAの知識は必要ですか?
0201デフォルトの名無しさん2016/05/19(木) 20:50:13.84ID:0NGD4TAz
VBAのサンプル見ながら書くんだから必要に決まってる
0202デフォルトの名無しさん2016/05/19(木) 22:33:03.86ID:MKa/yUEp
@エクセル.do("エクセル動けVBA”)
こんなかんじ?
0203デフォルトの名無しさん2016/05/19(木) 22:38:09.82ID:8tkESgzV
違う
そうじゃない
0204デフォルトの名無しさん2016/05/20(金) 00:04:24.82ID:o172VlqL
俺、おまえらみたいになれるようにがんばるよ
0205デフォルトの名無しさん2016/05/20(金) 01:15:23.68ID:KIw+nUhS
qiitaってクソみたいな記事増えて見る気失せたな
0206デフォルトの名無しさん2016/05/20(金) 03:14:06.44ID:5Uv57k1E
スレチだけど
0207デフォルトの名無しさん2016/05/21(土) 00:15:47.42ID:TJV+wjVx
>>192
Heroku の笹田耕一が、命令を中間コードに折りたたむ、

Ruby仮想マシン(RubyVM)を作ったのは、2004年のRuby 1.9 から
0208デフォルトの名無しさん2016/05/22(日) 17:09:47.75ID:xX01J0kV
プログラマ芸人クソむかつくな
勉強中だからとか若いからとかいうのを免罪符にして
わかったふりして嘘を垂れ流すクズ
傀儡っていう自覚あるのかな
0209デフォルトの名無しさん2016/05/22(日) 20:11:08.18ID:gMsVcx92
>>208
プログラム芸人って?
0210デフォルトの名無しさん2016/05/22(日) 21:54:03.17ID:yMwTDWKP
>>208
そういうタレントなんか、相手すんな、気にするな。
0211デフォルトの名無しさん2016/05/24(火) 22:57:15.19ID:XEe/ObJR
ウィンドウズ用のデスクトップのアプリケーションをつくりたいのですが、RubyでやるよりVBでやったほうが簡単でしょうか?
Ruby用のGUIはTKを一緒にインストールしました。
ウェブアプリケーション用の記事やレイルズ関連の話が多く、自分で使う用の簡易なデスクトップアプリはRubyで作成可能なのかよくわかりません。
選択やプルダウンをいくつか選ぶと、エクセル等に計算結果が自動出力されるものをつくりたいのです。
0212デフォルトの名無しさん2016/05/24(火) 23:02:11.55ID:Zf7m21lM
出力先がExcelなのなら素直にVBやExcelマクロを使ったほうが素直
ただしなにかめっちゃテキスト処理するというならそこはRubyのほうがいいかも
0213デフォルトの名無しさん2016/05/24(火) 23:11:29.51ID:XEe/ObJR
あーやはりそうですか。rubyをしばらく勉強してみて思ったのですが、
そもそもデスクトップ上でのみ動くようなもの(特にGUI)を作るのには、初心者にはあまり優しくはないですよね
0214デフォルトの名無しさん2016/05/24(火) 23:14:10.63ID:2NWdMlbv
RubyでGUIは修羅の道だからな
0215デフォルトの名無しさん2016/05/24(火) 23:15:38.91ID:XVnpS8Zn
>>213
VBとかはWindowsに特化してる分だけ簡単になるんよ。
Linuxでも動かしたいとかの場合は逆にRuby/TKになるけどね
0216デフォルトの名無しさん2016/05/24(火) 23:28:05.99ID:XEe/ObJR
おとなしくVB勉強することにします。
全然アプリ作成がイメージできないから、結構買っちゃったRubyの本たちどうしよう。
0217デフォルトの名無しさん2016/05/24(火) 23:56:26.69ID:ODiJmRGM
通販は知らんが放送開けてなくてレシートがあるなら返品できるかもしれないよ
0218デフォルトの名無しさん2016/05/25(水) 00:04:55.01ID:0fASXL2x
>>216
近場なら買取に行くのにな
0219デフォルトの名無しさん2016/05/25(水) 08:35:17.92ID:bbq7lHBG
>>216
てかJavaScriptにすれば?Electronとか流行ってていいんじゃね?
0220デフォルトの名無しさん2016/05/25(水) 12:32:03.88ID:RqoGasre
プルダウンリストとボタンぐらいだったらRuby/Tkが簡単だし十分でしょ
凝ったUIにしようとすると死ねるけど
0221デフォルトの名無しさん2016/05/25(水) 12:43:12.66ID:ECOeuz5z
win32oleを使ってもいいんじゃない?
解説も多いし
0222デフォルトの名無しさん2016/05/25(水) 14:51:30.25ID:JMqhkYJX
>>211
テンプレートをエクセルで作っておいて
Rubyなりで選択やプルダウンした結果をテンプレに挿入して
出力する造りにすると楽
0223デフォルトの名無しさん2016/05/25(水) 14:52:11.16ID:JMqhkYJX
>>214
それな
0224デフォルトの名無しさん2016/05/25(水) 17:30:55.16ID:pZYZ14wu
ruby はすべてが修羅の道だよ
0225デフォルトの名無しさん2016/05/25(水) 18:09:07.32ID:wY/Wnuvz
いやGUIはともかく
言語自体は簡単だろ
0226デフォルトの名無しさん2016/05/25(水) 18:13:47.52ID:UjzgjwET
Windowsなら修羅の道
こういう勘違いして時間を無駄にする被害者を増やさないためにも、
Ruby開発陣はもうWindows相手にする気無いんだからはっきりそうアナウンスするべき
0227デフォルトの名無しさん2016/05/25(水) 18:13:57.93ID:JMqhkYJX
windowsにも優しくしてください
0228デフォルトの名無しさん2016/05/25(水) 18:17:31.67ID:JMqhkYJX
>>226
明言しちゃったら予算税金ぶんどれなくなるからじゃね
0229デフォルトの名無しさん2016/05/25(水) 18:19:31.06ID:CBm2j+F0
かつてWindows上でのテキスト加工やVBA代わりに使ってる人も多かったけど、
今ではコミュニティが完全にRailsに乗っ取られちゃってもうダメだね
公式のVer.Upアナウンスで「Railsのパフォーマンスを改善しました」とか普通に言っててもう完全にRails専用スクリプト
0230デフォルトの名無しさん2016/05/25(水) 20:09:42.99ID:o7owtJWO
IronRubyがあるやん
つかったことないけど。
0231デフォルトの名無しさん2016/05/25(水) 21:15:35.26ID:ijFGsv4R
>>229
彼らの目は覚まさせなければならない
どんな犠牲を払ってもね
不快とかではなく害悪だ
0232デフォルトの名無しさん2016/05/26(木) 00:01:52.65ID:HY9T5R8V
IronRubyの最終更新見たら2011年で草生える
0233デフォルトの名無しさん2016/05/26(木) 00:03:07.06ID:HY9T5R8V
そういえばバイオインフォマティクスでruby扱うって言うのも結局はやらなかったのだろうか
結局perlな気がする
0234デフォルトの名無しさん2016/05/26(木) 01:24:50.33ID:UjMbTLsx
MSはWindows依存の言語ばかりで、すべてのOSで使える、汎用言語を持っていない

だから、VS Code, Bash on Windows でも、Python, Ruby のサポートが最優先
0235デフォルトの名無しさん2016/05/26(木) 01:39:34.33ID:/SAceF4R
VS Code、まだ日本語だと使いにくいんだよなー
0236デフォルトの名無しさん2016/05/26(木) 13:42:44.17ID:PPtVZd97
>>232
終わってんな
0237デフォルトの名無しさん2016/05/26(木) 13:43:38.01ID:PPtVZd97
>>233
放送大学のプログラミングの授業はRuby使っとった
0238デフォルトの名無しさん2016/05/26(木) 14:15:25.09ID:looUebM7
うちの大学の前期課程ではrubyが準必修だったわ
0239デフォルトの名無しさん2016/05/26(木) 15:54:40.68ID:QgXVvdFH
窓OSなんか、Rubyのサポートから捨てちゃえばいい。
0240デフォルトの名無しさん2016/05/26(木) 16:09:51.98ID:PPtVZd97
昔からサポートなんてしていない
自己責任
0241デフォルトの名無しさん2016/05/26(木) 20:43:44.33ID:kf6+V6jX
大学でRuby準必修とかすごいな
こちとらC, Scheme, Javaだったぞ…
0242デフォルトの名無しさん2016/05/26(木) 21:04:26.33ID:gEBgfilR
Javaの授業と言いながら、mainメソッドの中に変数a,b,c,...を用意して全部そこで処理〜
みたいなのを東大出身者にやられてから10年程度しか経ってないと思うと感慨深い
0243デフォルトの名無しさん2016/05/27(金) 10:05:35.18ID:M1a78pSK
>>238
お前、東大の理系の学生だろ
0244デフォルトの名無しさん2016/05/27(金) 11:51:43.10ID:+931Hxzr
>>242
どこの學校?
0245デフォルトの名無しさん2016/05/27(金) 16:26:46.66ID:HURQQ888
プログラミングの考え方が対象年齢5歳の絵本で身につく「ルビィのぼうけん」レビュー
http://gigazine.net/news/20160524-hello-ruby-review/

プロジェクトの開始からわずか3時間で目標額の1万ドル(約100万円)に到達
0246デフォルトの名無しさん2016/05/27(金) 17:03:59.14ID:a5zDK+Zd
djangoわろす
0247デフォルトの名無しさん2016/05/27(金) 17:40:10.41ID:yYwIsK/3
>>244
某田舎の高専
0248デフォルトの名無しさん2016/05/28(土) 00:20:50.45ID:PtZBoQp9
真偽・対偶・集合など論理的思考・論理演算は、中学生以上じゃないと理解できない

小学生はそろばんとか、1+1=2 とか、言語能力など、暗記型の単純なものしかできない

判断や思考は、できない
0249デフォルトの名無しさん2016/05/28(土) 00:53:58.83ID:HvcbCyzV
>>248
小学生舐めすぎ
0250デフォルトの名無しさん2016/05/28(土) 08:30:37.99ID:87dv3xOx
小学生舐めたい
0251デフォルトの名無しさん2016/05/28(土) 11:28:04.15ID:GLCLhEM2
>>250
おまわりさんこっちです
0252デフォルトの名無しさん2016/05/28(土) 12:00:38.49ID:YkPoIoOS
>>248
親や環境の影響によると思う
0253デフォルトの名無しさん2016/05/28(土) 12:01:49.75ID:YkPoIoOS
出来るやつは小学生でも出来る
出来ないやつは大人になっても出来ない
もちろん多くの人間はその中間でしかない
0254デフォルトの名無しさん2016/05/28(土) 23:14:33.76ID:vZatrWbm
プログラミング初心者です
rubyを始めようと思っているのですが、基礎から教えてくれるサイトなどを教えていただきたいです
0255デフォルトの名無しさん2016/05/29(日) 00:06:18.34ID:VvL70MFq
>>254
サイトは知らない
本ならテンプレ参照
0256デフォルトの名無しさん2016/05/29(日) 04:14:13.12ID:RrRCCmyQ
本なら『たのしいRuby』が入門書の鉄板
0257デフォルトの名無しさん2016/05/29(日) 12:12:31.80ID:9WWbP5OA
プログラミング初学者向けの本なら「ルビィのぼうけん」(対象5歳以上)がおすすめ
0258デフォルトの名無しさん2016/05/29(日) 12:32:35.29ID:fkiT89OT
リンダって人どんだけプログラミングできんの?
芸人?
0259デフォルトの名無しさん2016/05/30(月) 01:22:02.02ID:3DZnNVRd
https://image.kusokora.jp/v1/b7daff98c2b748dfa6cb8240c8ac7c33/kusokora/Caz5uAHUsAAwKwp.jpg
0260デフォルトの名無しさん2016/05/30(月) 13:39:12.86ID:JuVY621L
Rubyって演算子もメソッドって聞いたんですけど
&.とか全然メソッドじゃないですか
うそじゃないですか
0261デフォルトの名無しさん2016/05/30(月) 15:50:13.85ID:sT3Um2rG
Fixnum#& はメソッドだろ
0262デフォルトの名無しさん2016/05/30(月) 16:45:26.45ID:sT3Um2rG
ちなみにメソッドじゃないものも確かにある
>再定義できない演算子(制御構造)
>演算子の組合せである自己代入演算子は再定義できません。
> = ?: .. ... not && and || or ::

http://docs.ruby-lang.org/ja/2.3.0/doc/spec=2foperator.html
0263Ruby初心者2016/05/30(月) 21:37:38.47ID:FFEidQWc
Rubyの超初心者です。
Rubyの勉強を始めようと思いhttp://rubyinstaller.org/からRubyのインストーラーを
ダウンロードしたのですが、rubyinstaller-2.2.4.exe など
KINGSOFT Internet Securityでマルウェア潜伏を検知しました。(tclpip85.dll)
これは誤検知なのでしょうか?
ご存じの方、よろしくお願いします。
0264デフォルトの名無しさん2016/05/30(月) 22:40:36.17ID:IRxQFxCl
>>263
KINGS○FT Internet Securityとかいう、
某特亞ソフトがマルウェアですぞい。
ということで、窓OSでRubyを使うのもやめなはれ。

マジレスすると、誤認識。
所詮、アレは特亞だから、さっさとアンインストールしはなれ。
0265デフォルトの名無しさん2016/05/30(月) 23:40:12.61ID:CvrnMKOQ
>>263
卵を残しているからuninstallしたあと、有料ソフトを入れて全スキャン
norton eset カスペルスキーなどを推奨
0266デフォルトの名無しさん2016/05/31(火) 20:06:20.39ID:wtf3ir0Y
ShiftJISとUTF8でかかれたテキストファイルをそれぞれ読み込んで
NEC特殊文字がないか検索したいんだけど、

str.encode('Windows-31J') =~ /[�@-�I]/

みたいな式を書いてもIncompatibleだと怒られます
どうすればいいのでしょうか?
0267デフォルトの名無しさん2016/05/31(火) 20:59:36.26ID:7tSTm6mV
なんでWindows-31J"でエンコードしてんの
0268デフォルトの名無しさん2016/06/01(水) 00:14:51.04ID:91rys83L
>>260

せっかくなので答えると
&は
def &(other)
end
で定義可能
.は演算子でなく区切り文字
0269デフォルトの名無しさん2016/06/01(水) 04:44:46.68ID:bpjRczp9
円囲みの数字は、Windowsだけが使う、環境依存文字だね。CP932
0270デフォルトの名無しさん2016/06/01(水) 12:25:44.58ID:dPnMKqYG
&.って2.3のsafe navigation operatorの事を言ってるんじゃないの?
0271デフォルトの名無しさん2016/06/01(水) 12:30:21.40ID:Fp4IytvV
エスパーじゃないからわからないし
そもそもなぜ演算子すべてがメソッドじゃないと「嘘吐き」になるのかもわからない
0272デフォルトの名無しさん2016/06/02(木) 07:24:34.00ID:lxZxN/+H
Rubyのインストーラや構成ファイルがアンチウィルスソフトウェアでヒットするのは誤検知ではなく正常の範疇
プログラミングとはそういうもんだし安全側に倒した検知というのもそういうもんだ
キングソフトのアプリケーションの使用を勧めるものではないが
0273デフォルトの名無しさん2016/06/02(木) 12:24:43.10ID:hpz40EtU
>>271

分からないんだね
0274デフォルトの名無しさん2016/06/04(土) 01:10:14.44ID:5FXvcCoj
【OS】 Mac OS X 10.8.5 (x86_64)
rbenvをインストールしたいんだけど、gitの基本を学ぶのに良い書籍かサイトを教えて下さい。
ruby 2.1.xか2.0.x系でgitのインストールが書かれている本でも可です。
0275デフォルトの名無しさん2016/06/04(土) 01:35:12.26ID:3lsMjWzh
git は、ネット回線がつながっていなくても、
ローカルPC内に、コピーしてあるファイルに、上書きできる

そして、ネット回線がつながった時に、サーバーにあるリポジトリに保存すればいい

このように、皆がローカルファイルに対して、上書きしているから、
リポジトリに保存する際、他者とのコンフリクトがよく起きるので、うまく調整すべし
0276デフォルトの名無しさん2016/06/04(土) 02:51:29.78ID:n5pCla5O
わあアスペって本当にいるんだ
■ このスレッドは過去ログ倉庫に格納されています