Ruby 初心者スレッド Part 56©5ch.io
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん 転載ダメ©2ch.net
2014/12/13(土) 09:29:12.93ID:DLY4IovQ質問するときは、OSやRubyのバージョン、エラーメッセージを書いたほうがいいお
Ruby on RailsについてはWEBプログラミング板で
前スレ
Ruby 初心者スレッド Part 55
http://peace.2ch.net/test/read.cgi/tech/1403361584/
るりまサーチ (リファレンス検索)
http://rurema.clear-code.com/
Rubyist Magazine - るびま
http://jp.rubyist.net/magazine/
逆引きRuby
http://www.namaraii.com/rubytips/
0554デフォルトの名無しさん
2015/01/30(金) 21:59:14.01ID:gb3cROEI0555デフォルトの名無しさん
2015/01/30(金) 22:24:09.78ID:+5BNGDg80556デフォルトの名無しさん
2015/01/30(金) 22:59:32.61ID:3CnRTZyK0557550
2015/01/31(土) 00:57:27.52ID:uC1xfWdZ同じスコープ内で、
1, l(エル)、0, O(オー)などの書き間違いで、
別の変数の宣言になってしまうのを防ぎたい
0558デフォルトの名無しさん
2015/01/31(土) 02:13:10.51ID:SZVKn3yTまあ宣言と定義が未分明なRubyじゃ100年たっても実装されるか微妙だな
0559デフォルトの名無しさん
2015/01/31(土) 06:53:11.40ID:s4+AsH4m0560デフォルトの名無しさん
2015/01/31(土) 08:06:56.70ID:Ozkgovrmそれが問題になるほど巨大なメソッドを書くなアホ
0561デフォルトの名無しさん
2015/01/31(土) 09:30:07.21ID:SZVKn3yTコードの長さとは関係ないよ
0562デフォルトの名無しさん
2015/01/31(土) 10:24:29.01ID:gojz97z40563デフォルトの名無しさん
2015/01/31(土) 10:38:26.24ID:Xj+5RYHD0564デフォルトの名無しさん
2015/01/31(土) 10:48:20.45ID:bF0SVAwCプログラミングっていったい何なんやろな
いにしえのタイプライター打つオバちゃんみたいなモンなんやろか
0565デフォルトの名無しさん
2015/01/31(土) 10:52:32.73ID:Ozkgovrm0566デフォルトの名無しさん
2015/01/31(土) 10:54:54.05ID:gojz97z40567デフォルトの名無しさん
2015/01/31(土) 10:56:21.22ID:SZVKn3yT0568デフォルトの名無しさん
2015/01/31(土) 11:05:37.44ID:gojz97z40569デフォルトの名無しさん
2015/01/31(土) 11:10:29.97ID:gojz97z4自分が理解しやすい変数名にして_1 _2 とか付けなきゃいんじゃない
レビューで変なネーミングが気になるなら最後に置換すりゃいいだけだし
0570デフォルトの名無しさん
2015/01/31(土) 11:10:40.58ID:SZVKn3yT0571デフォルトの名無しさん
2015/01/31(土) 11:16:11.00ID:gojz97z40572デフォルトの名無しさん
2015/01/31(土) 11:16:37.37ID:29y+W13dそれは止めた方がいいと思います
0573デフォルトの名無しさん
2015/01/31(土) 11:18:26.81ID:29y+W13dtypoなんかリテラル文字列以外では無縁なのです
活用できるものを活用してないだけでセンスゼロなのです
0574デフォルトの名無しさん
2015/01/31(土) 11:45:59.15ID:Hs82A+Y60575デフォルトの名無しさん
2015/01/31(土) 12:09:16.42ID:Xj+5RYHDruby-lintってのはしてくれる
0576デフォルトの名無しさん
2015/01/31(土) 12:54:23.05ID:iD+tawguRubyで気軽に使えて標準で補完ができるIDE的なものがあればいいのに
それがないから厳格モード的なのがあってもいいと思う
技術的に難しい部分ってあるのかな?
Matzがいらないと思ってるだけかな?
0577デフォルトの名無しさん
2015/01/31(土) 13:49:00.77ID:gojz97z40578デフォルトの名無しさん
2015/01/31(土) 13:59:36.70ID:29y+W13dなんか力点がおかしいんですよ
もしくは制限プレイとでも言うんですかね
0579デフォルトの名無しさん
2015/01/31(土) 14:05:24.47ID:gojz97z40580デフォルトの名無しさん
2015/01/31(土) 16:19:23.10ID:fH2ezq9N0581デフォルトの名無しさん
2015/01/31(土) 17:13:09.77ID:RulzY4Di0582デフォルトの名無しさん
2015/01/31(土) 17:18:51.24ID:Hs82A+Y6くれないと思う
が、そもそもundefinedはユニットテスト通らないし
0583デフォルトの名無しさん
2015/01/31(土) 17:21:16.06ID:fH2ezq9Nそうだね
未定義変数への参照は通った瞬間にエラーなのでそこを通るテストを書いただけで検知できるね
代入の方はその後その変数は使われないだろうから、rubocopが検知してくれる
0584デフォルトの名無しさん
2015/01/31(土) 18:00:35.57ID:Xj+5RYHDと思うのでいまどきの入門書書く人はそこらへん留意していただけると嬉しいです
0585デフォルトの名無しさん
2015/01/31(土) 18:08:45.92ID:L1WBwZOUなぜ__send__だけにしておかなかったのだろう。
0586デフォルトの名無しさん
2015/01/31(土) 18:26:49.34ID:Hs82A+Y6どういった状況で?
0587デフォルトの名無しさん
2015/02/01(日) 15:00:59.60ID:cy2W8bd9数値.to_s が必要だが、
一々面倒なので何とかならないか?
global変数は、すべてのファイルで共通になるが、
そのファイル内だけのglobal変数は無いの?
C言語で言うと、extern, staticの区別
0588デフォルトの名無しさん
2015/02/01(日) 15:08:13.07ID:3vNkahG1#{...} を使えばいいんじゃね?
0589デフォルトの名無しさん
2015/02/01(日) 16:50:47.88ID:lQgEbHmF0590デフォルトの名無しさん
2015/02/01(日) 16:56:53.64ID:XkAsCPXm新型のputsを自作すればいい
0591デフォルトの名無しさん
2015/02/01(日) 17:13:44.38ID:zDAnvj5f仕様
aが文字列か数値か判別して、数値なら文字列に変換
bが文字列か数値か判別して、数値なら文字列に変換
a + bを標準出力
0592デフォルトの名無しさん
2015/02/01(日) 17:48:23.39ID:cgGRoexen = 1
puts "#{n} + 1 = #{n+1}"
puts "%d + 1 = %d" % [n,n+1]
0593デフォルトの名無しさん
2015/02/01(日) 18:04:22.58ID:CCPA60Z6irb(main):001:0> def my_puts(*xs); puts xs.map { |x| x.to_s }.join; end
=> :my_puts
irb(main):002:0> my_puts "x = ", 123
x = 123
=> nil
irb(main):003:0>
0594デフォルトの名無しさん
2015/02/01(日) 19:07:56.22ID:jb7bJiwhむしろString.+をいじった方がいいのでは
0595デフォルトの名無しさん
2015/02/01(日) 19:11:56.17ID:idWDCOsc使いたくもないです
0596デフォルトの名無しさん
2015/02/01(日) 19:16:31.23ID:esW6O74B他の特定の言語では当然だったかもしれないが、その言語ではない言語では当然ではない
no = 596
puts "このレスは#{no}番目です"
0597デフォルトの名無しさん
2015/02/01(日) 19:26:10.02ID:ymu35Jul0598デフォルトの名無しさん
2015/02/01(日) 19:30:08.08ID:OM+Gcdnk動的型だと実行してみるまでどっちの意味になるかわからないからまずいわけ
0599デフォルトの名無しさん
2015/02/01(日) 20:18:03.21ID:QmWK2eIJ0600デフォルトの名無しさん
2015/02/01(日) 20:27:04.35ID:esW6O74B組み込み基本のクラスを使う限りどっちの意味にもならない
irb> 1 + "one"
TypeError: String can't be coerced into Fixnum
from (irb):1:in `+'
irb> "one" + 1
TypeError: no implicit conversion of Fixnum into String
from (irb):2:in `+'
自作クラスの自作メソッドの挙動やto_strの乱用にまでは責任を持てない
0601デフォルトの名無しさん
2015/02/01(日) 20:57:21.24ID:j8xgKLPZファイル所属の変数は無いが
モジュール所属の変数はあるので、ファイル毎にモジュール作れば良い
0602デフォルトの名無しさん
2015/02/01(日) 22:17:06.17ID:dK11pYT40603デフォルトの名無しさん
2015/02/01(日) 22:23:41.26ID:lVVBipUTつぎ込めば、いつか見返りがある儲けられる、と思い込んでいるのです。
絶対に抜けられません。
0604デフォルトの名無しさん
2015/02/01(日) 23:17:13.34ID:3vNkahG1あぁ、「どうせあの葡萄はすっぱいに決まってる」という寓話を地で演じてるのか
0605デフォルトの名無しさん
2015/02/02(月) 06:12:00.34ID:hiXwrLan0606デフォルトの名無しさん
2015/02/02(月) 07:13:04.85ID:r+Lk9y7y0607デフォルトの名無しさん
2015/02/02(月) 08:27:04.62ID:2QTFDeMY楽しいと感じないのにタイプしてるのはバカか仕事なのです
呪うべきは楽しくないのに選択した自分か、仕事を押し付ける上司
それが答えなのです
0608デフォルトの名無しさん
2015/02/02(月) 08:36:52.46ID:KT6cnHtO0609デフォルトの名無しさん
2015/02/02(月) 08:40:34.31ID:2QTFDeMY0610デフォルトの名無しさん
2015/02/02(月) 08:42:13.17ID:aWW6SCxB泣きながら他の言語で書き直すことになる
0611デフォルトの名無しさん
2015/02/02(月) 08:45:32.43ID:2QTFDeMY餅は餅屋、何でも出来ると勘違いしてる判断ミスじゃないの
0612デフォルトの名無しさん
2015/02/02(月) 09:43:03.46ID:rJw1gGUcほんとこれ
0613デフォルトの名無しさん
2015/02/02(月) 10:02:26.21ID:eLVqBz1I0614デフォルトの名無しさん
2015/02/02(月) 10:54:44.07ID:hvFmtfufおなじ疑問を持ってここに来ました
そういうところ見つかりましたか?
あったら教えてください
ここは流れをみるのがつらい
0615デフォルトの名無しさん
2015/02/02(月) 14:02:29.47ID:2QTFDeMY道具とは最適化を図るための手段であって
目的でもゴールでもない
部分最適化を突き詰めれば道具は細分化し、
さらに各自の手に合う物が求められる
その細分化の一部がrubyに過ぎない
求める者がいればその道具を使い、使いにくければ捨てられるだけだ
個々人に差があるのであれば、道具も応じて違いが生じる
手に馴染めば道具
それが最適化ってもんだよ
好きなもんを選べば良いだけの話だ
0616デフォルトの名無しさん
2015/02/02(月) 14:15:15.15ID:dFh+3r/9スタック・オーバーフローでRubyタグを選択して
興味ありそうな投稿を読んだり
わからないことを質問してみたりするのはどうかな?
別に超初心者質問でもいいと思うよ
http://ja.stackoverflow.com/
0617614
2015/02/02(月) 15:59:24.40ID:hvFmtfufありがとうございます
さっそく質問してきました
0618614
2015/02/02(月) 16:46:04.23ID:hvFmtfufコメントに「ありがとう」は避けてくださいとか
スタックオーバーフローの使い方に馴染むのにも時間がかかりそう
0619デフォルトの名無しさん
2015/02/02(月) 17:54:24.83ID:F8krgf3P道具としてもふさわしくない
0620デフォルトの名無しさん
2015/02/02(月) 17:58:55.77ID:w/aGrY+/まあ技術に真摯とかいう言い訳を盾にストレス解消してるカスよりはいいか
0621デフォルトの名無しさん
2015/02/02(月) 18:26:36.59ID:YvYF+i45なにその昭和的解釈
対処上迷惑だから来ないでくれ
0622デフォルトの名無しさん
2015/02/02(月) 18:31:29.83ID:y8op27fVもうここにはくるなよノシ
0623デフォルトの名無しさん
2015/02/02(月) 18:50:05.83ID:V3GmxBlb0624デフォルトの名無しさん
2015/02/02(月) 22:57:16.55ID:P9prHaW7if文でthenは省略できるそうですが、
一行で書くのでなければthenは省略するのが普通の書き方ですか?
0625デフォルトの名無しさん
2015/02/02(月) 23:05:21.29ID:vLsFqgHchttps://github.com/fortissimo1997/ruby-style-guide/blob/japanese/README.ja.md
0626デフォルトの名無しさん
2015/02/03(火) 00:34:40.41ID:zLVytOR3>データファイルの内容はバイナリになるため、
エディタなどでデータファイルの内容を直接編集することは出来ません。
と書かれているので、CSVのように扱えないし、データベースとしては中途半端に見えるのですが。
0627,,・´∀`・,,)っ-○○○
2015/02/03(火) 02:03:48.12ID:ZTQRufFpテキストやSQLiteデータベースならたしかに他のアプリからは読み出しやすいかもしれないが
Rubyから読み出すときにいちいち解析が必要だ。
変数の実体が単一のIntegerやStringだったらありがたみは感じないかもしれない。
だがArrayやHash, Classなど複数まとめたデータ構造になると話は変わってくる。
汎用のRDBに保存するにもデータ構造を定義するスキーマが必要だが
Rubyのデータ構造は動的で、配列ひとつとっても、要素ごとに別々のオブジェクト型を持つことができる。
そんなものを汎用のデータベースに保存しようと思ったら手間が大変です。
だからRubyネイティブのデータ構造を保ったまま保存するライブラリが必要なわけ。
0628デフォルトの名無しさん
2015/02/03(火) 06:49:11.99ID:Oq2Uxu+K一般論としてあんまり省略はしない
なぜならわかりにくいから
「省略が許されているから」という理由で省略したりはしない
一方、省略したほうがわかりやすい場合は省略する
たとえばいくつかの関数的メソッドの引数カッコ()
わかりやすいってなんやねんという話に帰着
0629デフォルトの名無しさん
2015/02/03(火) 15:03:34.31ID:kH1e55rkmodule A
def foo
end
end
module B
def foo
#ラップ
super
end
end
class C
extend A
foo
end
これって可能なのでしょうか?
0630629
2015/02/03(火) 15:54:13.59ID:kH1e55rk0631デフォルトの名無しさん
2015/02/03(火) 17:32:14.67ID:jSs0xbxAインデックスが渡ってこないのですか?
一々、自分でカウントするのが面倒くさい
while 条件 do |i|
end
i = 0
while 条件
i += 1
end
それと、後判定の構文はありますか?
do
while 条件
do |i|
while 条件
0632デフォルトの名無しさん
2015/02/03(火) 19:48:01.54ID:fwrgjvoe1. each_with_index
2. begin ... end while
0633デフォルトの名無しさん
2015/02/03(火) 22:00:20.05ID:8WdQQTPe0634デフォルトの名無しさん
2015/02/03(火) 23:51:10.62ID:bJajSEkiまたこのガイドラインによれば省くべきらしい
https://github.com/bbatsov/ruby-style-guide#no-then
0635,,・´∀`・,,)っ-○○○
2015/02/04(水) 02:13:03.76ID:mZ2NyWa4あれはC系というよりPascalの文法からの輸入だと思ってるが
0636デフォルトの名無しさん
2015/02/04(水) 10:45:02.52ID:iowEZhLp[1,2,3]
[1,2,[3,4]]
{ a: 1, b: 2 }
{ a: 1, b: 2, c: { d: 4 } }
これらを区別したいんですが
この区別をしたいです
0637デフォルトの名無しさん
2015/02/04(水) 11:25:54.95ID:o8a0pYfq0638デフォルトの名無しさん
2015/02/04(水) 11:56:45.85ID:gXcODlq6# p f.class
p f.kind_of?(Array)
}
print "\n"
gg = { a: 1, b: 2, c: { d: 4 } }
gg.each {|h,m|
# p h.class
#p m.class
p m.kind_of?(Hash)
}
0639デフォルトの名無しさん
2015/02/04(水) 11:57:42.44ID:gXcODlq60640636
2015/02/04(水) 16:54:44.49ID:iowEZhLpただ、これで両方ともtrueなのはなぜですか?
{ a:1 }.none? { |v| Hash === value }
{ a:1, b: { c: 2 } }.none? { |v| Hash === value }
0641デフォルトの名無しさん
2015/02/04(水) 17:17:03.80ID:XrYBwfOz0642636
2015/02/04(水) 17:32:01.21ID:iowEZhLp0643デフォルトの名無しさん
2015/02/05(木) 20:18:03.06ID:smQR/Z44いつもhoge.class <=> Klassとかってしてたから便利だ
0644デフォルトの名無しさん
2015/02/05(木) 20:25:21.86ID:jLw4sTHC0645デフォルトの名無しさん
2015/02/05(木) 20:46:47.76ID:Tpxi4Jvuともあれ、Rubyでは文と式はきちんと使い分けることができるので使いわけよう
他人に説明するときはなおさら
0646デフォルトの名無しさん
2015/02/05(木) 20:50:01.20ID:2+nUOnq40647デフォルトの名無しさん
2015/02/05(木) 21:05:34.07ID:4svq36dE0648デフォルトの名無しさん
2015/02/05(木) 21:16:13.66ID:4svq36dE従って、文法上は「case式は式である」というのと同程度には「式は文である」というのも正しい
0649デフォルトの名無しさん
2015/02/06(金) 05:12:36.55ID:FeYXODPI0650デフォルトの名無しさん
2015/02/06(金) 07:12:51.33ID:VJ9IpT0aだが少なくともcase式の値を使わなければそれは文そのもの
0651デフォルトの名無しさん
2015/02/06(金) 11:36:20.81ID:MMq1EYgoEMPTY = ""
puts EMPTY
base = EMPTY
base << " added"
puts base
puts EMPTY
puts "orz"
empty = ""
base = empty
base << " added"
puts base
# C:\work>ruby empty.rb
#
# added
# added
# orz
# added
0652デフォルトの名無しさん
2015/02/07(土) 11:23:55.99ID:tuovU1tZどのようにすれば良いですか?
【sample.rb】
-------------------------------------------------
#! ruby -EWindows-31J
# -*- mode:ruby; coding:Windows-31J -*-
require 'webrick'
require 'webrick/httpproxy'
ProxyHandler = Proc.new(){ |req,res|
puts res.body
}
ProxyServer = WEBrick::HTTPProxyServer.new({})
ProxyServer.start
-------------------------------------------------
0653デフォルトの名無しさん
2015/02/07(土) 12:10:13.92ID:tuovU1tZ■ このスレッドは過去ログ倉庫に格納されています