Ruby 初心者スレッド Part 55
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2014/06/21(土) 23:39:44.94ID:rKd1VvW8質問するときは、OSやRubyのバージョン、エラーメッセージを書いたほうがいいお
RoRはスレ違いよ
前スレ
Ruby 初心者スレッド Part 54
http://peace.2ch.net/test/read.cgi/tech/1392598207/
るりまサーチ (リファレンス検索)
http://rurema.clear-code.com/
Rubyist Magazine - るびま
http://jp.rubyist.net/magazine/
逆引きRuby
http://www.namaraii.com/rubytips/
0412デフォルトの名無しさん
2014/09/03(水) 13:37:07.00ID:HoPhs46Kあなたがgemを起動している時に使っているgemはrbenvによって生成されたgemコマンドへのラッパです。
ラッパによって各.rbenv/versions/[VERSION]/bin/gem が呼び出され、呼び出されたgemは各versionのroot以下の事しか把握していません。
0413デフォルトの名無しさん
2014/09/03(水) 13:50:23.85ID:vIx21Y4j~/.rbenv/shimsのなかのファイル(ruby,gem,etc...)を見るとスクリプトになっており、PATHの先頭付近に追加されてるのでここから呼ばれる。
(which gem)
ざっと目を通した感じだと、カレントディレクトリに.rbenv-versionまたは.ruby-versionがあればそこから、なければ~/.rbenv/versionの値が参照され、それをもとにどのディレクトリから呼び出すかを決める。
つまり、環境ごとに呼び出されるgem本体が違う。
0414デフォルトの名無しさん
2014/09/03(水) 15:54:57.09ID:UsrF22+Egemコマンドをあラップしていたのですね。理解しました
ありがとうございます
0415デフォルトの名無しさん
2014/09/04(木) 15:57:10.66ID:OIDeHqM90416デフォルトの名無しさん
2014/09/07(日) 05:52:26.74ID:dbFvupeQjavaではjunitとjmockit使ってました。
0417デフォルトの名無しさん
2014/09/07(日) 07:49:20.91ID:KNwhARCn0418デフォルトの名無しさん
2014/09/07(日) 12:42:48.08ID:82AeVD3A標準でついてくるminitest
使い方は、Junitそのまま。
0419デフォルトの名無しさん
2014/09/09(火) 11:23:12.23ID:5uq9Q4buC++にインスタンス変数がないのと同様、Rubyにはメンバ変数はない
メンバ変数はC++の専門用語およびC++に根付いた特殊な概念であって、オブジェクト指向固有の呼び名ではない
特定のオブジェクト指向言語の方言をオブジェクト指向全般で通用するものだと勘違いする現象は時々みられるが、
学習上も定義上も傍から見てても恥ずかしく意味がないので、気をつけるといい
稀に「その言語の用語」で説明しないサイトや書籍が現れるが、所詮その程度で害悪しか撒かないのでとっとと燃やしてしまえ
0420デフォルトの名無しさん
2014/09/09(火) 12:34:04.23ID:xwHNZTBEまとめて呼ぶときに、メンバ変数って呼ばれても特に変な感じはしないけどな。
単純にメンバというと、メソッドも含まれるわけで。
0421デフォルトの名無しさん
2014/09/09(火) 21:54:00.76ID:QKhHrQUhphpみたいにrubyでコマンドラインからコードを引数で渡して実行する方法を教えてください
0422デフォルトの名無しさん
2014/09/09(火) 22:25:23.49ID:jlMM873/-e
0423デフォルトの名無しさん
2014/09/09(火) 22:36:29.41ID:dRW5L+4Vありがとうございます。
0424デフォルトの名無しさん
2014/09/10(水) 00:04:50.55ID:ysKE+Qj1んだけど、gem install nokogiriとやるとエラーになってうまくいかないのはなぜ?
フェッチは100%まで行くけど、undefined method `[]‘ for nil:NilClassみたいな
エラーがでて止まっちゃう。
もうイライラしまくりんぐ。
0425デフォルトの名無しさん
2014/09/10(水) 00:51:41.65ID:3fyaXQX9v8かnods.jsが必要とか?
0426デフォルトの名無しさん
2014/09/10(水) 01:52:04.32ID:pTBoSvxK0427デフォルトの名無しさん
2014/09/10(水) 01:57:57.88ID:U67N92ow0428デフォルトの名無しさん
2014/09/10(水) 02:17:43.27ID:Kk1nHIcidevkit入ってる?
0429デフォルトの名無しさん
2014/09/10(水) 08:59:47.29ID:av5QsdtA0430デフォルトの名無しさん
2014/09/10(水) 09:44:20.33ID:hXO3q56qwindows でもコマンドライン数行でインスコ説明完了な時代になってるんだろうか
0431デフォルトの名無しさん
2014/09/10(水) 09:52:33.54ID:4LqmTc+v0432デフォルトの名無しさん
2014/09/10(水) 17:04:55.22ID:EEeqkt2aルーティング、もろもろの再利用、アクティブレコードあたりは便利だと思ったのですが、
特にビューヘルパーとかhtmlを別の名前にしましたみたいなものが多くありません?それメソッド使わずに普通に書いたほうがみやすいしわかりやすいのではというものが多いと思いました.経験者からするとどうなのでしょうか
0433デフォルトの名無しさん
2014/09/10(水) 17:06:51.83ID:/KH51cxp0434デフォルトの名無しさん
2014/09/10(水) 20:33:38.43ID:lzotv2Nxいやもうまったくその通り
そんな回りくどく書くより俺が直接書いたほうが(俺にとって)早いし(俺にとって)速いし(俺にとって)わかりやすい
いやもうまったくその通り
0435デフォルトの名無しさん
2014/09/10(水) 21:29:35.68ID:MIzNsnl2Railsに関する質問や相談なら
WebProg板に専用スレがあるから、
そちらへ逝きなされ
0436デフォルトの名無しさん
2014/09/10(水) 21:34:17.56ID:x7jt4/gl単純なTagHelperについてはそのとおりかもしれない
しかしFormBuilderは他にも色々やってくれる(nameやvalueを適切に入れてくれる)ので
生のHTMLを書くよりは書きやすいと思う
0437デフォルトの名無しさん
2014/09/11(木) 00:19:27.00ID:lctgDj8vこういうのって地味に大事というか、初心者離れを加速させちゃうんじゃないかと
いう気がする。
メンテする奴もやる気がなくなってきている、コミュニティとして煮詰まってきちゃったんだと思うけど。
もっとしっかりやれ。まあ俺は何もしないけど。
0438デフォルトの名無しさん
2014/09/11(木) 00:46:47.82ID:SzkLW3l30439デフォルトの名無しさん
2014/09/11(木) 07:26:43.55ID:IFETaxJcたとえば?
0440デフォルトの名無しさん
2014/09/11(木) 09:13:29.79ID:1Qd2Os770441デフォルトの名無しさん
2014/09/11(木) 10:16:40.23ID:qpyAR3PI0442デフォルトの名無しさん
2014/09/11(木) 14:52:29.61ID:xQfGfu/oはやくPythonやJavaScript系に乗り換えた方がいい。
0443デフォルトの名無しさん
2014/09/11(木) 15:05:01.07ID:1Qd2Os77ドヤ顔するクズと同じぐらい有害
0444デフォルトの名無しさん
2014/09/11(木) 19:50:23.40ID:WdQgW6yP>はやくPythonやJavaScript系に乗り換えた方がいい。
ついつい本音が出てしまったねw
アンチが乱入して暴れるのはRuby関連スレの恒例だな
まあ、それだけ他のスクリプト言語プログラマからすれば、
Ruby が気になって気になって夜も眠れないんだろうなぁ(棒
0445デフォルトの名無しさん
2014/09/11(木) 22:42:45.70ID:/K7dGRs5Rubyもだけど。
0446デフォルトの名無しさん
2014/09/12(金) 00:34:42.81ID:OuSEN9ev0447デフォルトの名無しさん
2014/09/12(金) 00:40:48.66ID:/jOX3V4Wruby2の言語仕様や改良はひとまず休憩して、周辺のgemをよりモダンにしたりhtml guiを洗練させたりとか、dbつけてruby platformと密着にさせるとか
0448デフォルトの名無しさん
2014/09/12(金) 08:19:58.62ID:vSDiSYyP0449デフォルトの名無しさん
2014/09/12(金) 09:11:38.07ID:XdsfP9FI0450デフォルトの名無しさん
2014/09/12(金) 11:07:14.97ID:RiRNscWFマジで。 心折れそうな時とかあるし。 頑張ってるけど。
0451デフォルトの名無しさん
2014/09/12(金) 11:08:21.68ID:RiRNscWFすまん、誤字
Ruby やrails やってる人はみんなそれなりに疲れてる。
0452デフォルトの名無しさん
2014/09/12(金) 12:06:47.25ID:97za8FFX0453デフォルトの名無しさん
2014/09/12(金) 18:00:08.39ID:ZWZJ98Tr0454デフォルトの名無しさん
2014/09/12(金) 18:00:33.59ID:ZWZJ98Tr0455デフォルトの名無しさん
2014/09/13(土) 11:44:06.43ID:Xnt2R8P3下記のように要素追加した場合は、途中で追加した要素まで含めてイテレートしてくれました
a=[1,2,3,4]
c=0
a.each{|i|
print i
a<<i if(c+=1)%2==0
}
↓
1234244
0456デフォルトの名無しさん
2014/09/13(土) 11:50:18.03ID:EgQD9V/20457デフォルトの名無しさん
2014/09/13(土) 12:37:57.18ID:O7s7l3Vq0458デフォルトの名無しさん
2014/09/13(土) 23:31:21.22ID:NaPTFTNe自分から作りたいものがなんもないのならRubyのことは忘れて街に出よう3連休だ
「銃を手に入れたんだけどなんでもいいので撃ってみたいですどうすればいいですか」的な目的見失った感じのは勘弁
0459デフォルトの名無しさん
2014/09/14(日) 03:17:49.08ID:HYioYToX作りたいものだの目標だの言う人間が多すぎると思うんだけど。
プログラミング言語に興味をもって何か勉強してみたいと思ったからとりあえず色々と取り組んでみて、その中でやりたいことを見つける方針じゃだめなの?
0460デフォルトの名無しさん
2014/09/14(日) 04:12:36.10ID:LAThkiswプログラミング自体が目的なら
それでいいんじゃない?
獣の喩えは適切じゃないね
0461デフォルトの名無しさん
2014/09/14(日) 06:05:30.20ID:VdLJmbOR0462デフォルトの名無しさん
2014/09/14(日) 08:28:07.47ID:VxA609sk他のは手段を目的に出来ない限りとてもじゃないけど労力に見合わない
0463デフォルトの名無しさん
2014/09/14(日) 08:37:41.07ID:3TnczO87ほぼ易しいものから難しいもの順
* 摂氏と華氏の相互変換
* 指定したディレクトリの中にあるファイル名を列挙
* 日米英仏独の現在時刻を表示
* FLAC を MP3 に変換(もちろん flac や lame など使用可)
* iTunes のストアで売れてるらしいアプリのタイトルを列挙
https://itunes.apple.com/jp/rss/topgrossingapplications/limit=10/xml
* 画像ファイル(JPEG/GIF/PNG のいずれか)の本当の拡張子を判別
* おかいものリスト(追加、編集、削除、個別表示、一覧表示、ソート等)
* エロサイトスクレイピング
0464デフォルトの名無しさん
2014/09/14(日) 09:22:02.58ID:PAZT5dFk2)マス目にあらかじめ入っている(数字)は太線で囲まれたブロックに入る数字の合計を表しています
3)太線で囲まれたブロックの中には同じ数字が入ることもあります
┏━━┳━━┳━━┳━━┯━━┳━━┓
┃(3) ┃(4) ┃(13)┃(5) │ ┃(8) ┃
┠──┣━━┫──┣━━┳━━┫──┨
┃ ┃(7) ┃ ┃(1) ┃(7) ┃ ┃
┣━━┫──┃──┣━━┫──┣━━┫
┃(11)┃ ┃ ┃(7) ┃ ┃(6) ┃
┠──┣━━┻━━┫──┣━━┻━━┫
┃ ┃(6) │ ┃ ┃(6) │ ┃
┣━━┻━━┳━━┻━━╋━━┳━━┫
┃(9) │ ┃(6) │ ┃(4) ┃(3) ┃
┣━━┳━━┻━━┳━━┻━━┫──┨
┃(4) ┃(5) │ ┃(11)│ ┃ ┃
┗━━┻━━┷━━┻━━┷━━┻━━┛
これを解くプログラムを ruby でおながいします
(たぶんずれるので等幅フォントのエディタにコピペで見てください)
0465デフォルトの名無しさん
2014/09/14(日) 10:00:09.59ID:HYioYToXエロサイトスクレイピングをしれっと入れるなよ!
0466デフォルトの名無しさん
2014/09/14(日) 11:50:34.01ID:KPgHSz1I外から渡された目的のよくわからない『課題』をやることほど、摩耗してしまうものはない
本当に興味を持てる回数は最初の1回程度なんだから、そんなものに使い潰してしまうのは大損だ
やりたいものだけやりなさい
やりたいものがないなら一旦離れなさい
パソコンを使っていれば、プログラミングできそうな機会というのは必ずやってきます
0467デフォルトの名無しさん
2014/09/14(日) 11:56:11.45ID:E5aokUpH0468デフォルトの名無しさん
2014/09/14(日) 14:27:29.68ID:eKNmfx5B自分で使うことになって改造とかもやる気が出ると思う
たとえばプログラミングするエディタを拡張する何かを作ろうとしてみたり
ネットサーフィンに便利な自分用サイトを作ってみたり
エロサイトスクレイピングしてみたり
パズルを解くようにプログラミングするお題が欲しいだけなら会津オンラインジャッジだな
(rubyじゃないけどダウンロード補助ツールを数年前に自分で書いて今も使ってるわ)Oo。.(´-`
0469デフォルトの名無しさん
2014/09/14(日) 15:53:16.12ID:HYioYToXたとえばエディタの拡張機能を作りたいと思っても、どこから始めていいかわからない場合はどうすればいいかな?
とりあえず調べるなどして他を参考にしつつって感じでいいのかな?
一応文法とかは大丈夫だと思うんだけど。。
0470デフォルトの名無しさん
2014/09/14(日) 16:12:54.97ID:VxA609skそりゃ他の人のを真似するんだよ
でもそういう特定のアプリに強く依存したものはバッドノウハウが身に付くだけだから初心者の勉強には相応しくない
0471デフォルトの名無しさん
2014/09/14(日) 16:16:57.97ID:DRyo//L50472デフォルトの名無しさん
2014/09/14(日) 16:21:10.62ID:eKNmfx5Bエディタの拡張方法を調べる必要があるしRubyが入り込む余地が少ないかも
具体的な例としては、ソースを解析する何かを作るとして、
(まずRuby関係ないところなのでめんどいが)
大抵のエディタは拡張機能で外部プログラムを呼べるようになってるから
そこからRubyに標準入力に編集中の内容を渡すようにする
それができたら初めてRubyで変数抽出とかコールツリー作るとかやりたいことをやる
解析までしなくても、全行をuniq.sortして出力するスクリプトとか作っておくとたまに使ってるわ
アウトプットは標準出力をエディタに表示するくらいしかないかも
0473デフォルトの名無しさん
2014/09/14(日) 18:57:34.47ID:VLz5e6gt遅レスになるけど、
「イテレータで列挙している間にイテレータを破壊的に操作した時の振る舞い」
の仕様は定義されておらず、動作は不定になる
これは Ruby 固有の仕様ではなく、たとえば Java のイテレータも同じ
Ruby の場合は、イテレータで定義されている each メソッドの実装によって、
破壊的操作(たとえば要素の追加や削除)を含めて列挙したり列挙しなかったりする
だから列挙中での破壊的操作はコードの可読性を大きく損ねるから、避けるべき
0474デフォルトの名無しさん
2014/09/14(日) 21:25:52.32ID:HYioYToX>>472
なるほど…言語による向き/不向きの問題でもあるのかな。
自分でやってみたいと考えたのはTwitter関係だとかgmailをいじるだとか、そこらへんだけどこっちもやはり初心者には厳しいか。
0475デフォルトの名無しさん
2014/09/14(日) 21:36:25.69ID:lfdT4fPA個人的にはイテレーション中はfreezeする仕様でも良かったと思う。
0476デフォルトの名無しさん
2014/09/14(日) 21:38:11.09ID:VxA609sk0477デフォルトの名無しさん
2014/09/15(月) 23:43:37.52ID:qXx696JRp array = "1日2時間3分4秒".split(/(\d+?[日|時間|分|秒])/)
を行うと、
["", "1日", "", "2時", "間", "3分", "", "4秒"]
になり、1.""が作られてしまう、2.「時間」が分解されてしまうため悩んでいます
["1日", "2時間", "3分", "4秒"]
とするにはどう修正すればよいでしょうか?
おねがいします
0478デフォルトの名無しさん
2014/09/16(火) 00:09:09.95ID:rwPnUpsn[日|時間|分|秒]は、日時間分秒|のどれかの文字ってことでしょ。グルーピングは丸括弧で。
ただし、splitはそれも結果に入ってくるんだっけ。数値以外の繰り返しじゃダメなの。
0479デフォルトの名無しさん
2014/09/16(火) 00:20:02.61ID:+Ut5bl5+$ irb
irb(main):001:0> "1日2時間3分4秒" =~ /(¥d+)日(¥d+)時間(¥d+)分(¥d+)秒/
=> 0
irb(main):002:0> [$1 + '日', $2 + '時間', $3 + '分', $4 + '秒']
=> ["1日", "2時間", "3分", "4秒"]
irb(main):003:0>
0480デフォルトの名無しさん
2014/09/16(火) 01:16:09.80ID:ZVUC/mC5>>478,479さん、教えていただきありがとうございました
splitは決められた記号とかでStringを分割するためのメソッドですよね
こういうのはそのまま正規表現で書かなきゃいけないのに、splitが万能な思い込みがあって勘違いをしてました
アドバイスやGoogle先生を参考に書きなおして、なんとか上手く行きました
> p "1日2時間3分4秒".scan(/((\d+?)(日|時間|分|秒))/).map { |s| s[0] }
["1日", "2時間", "3分", "4秒"]
教えて下さりありがとうございました
0481デフォルトの名無しさん
2014/09/16(火) 01:44:31.07ID:h14rBBnhOK林檎厨は氏ね
\と¥の区別のつかないお可哀想な林檎厨は氏ね
端末が悪いんだけどさ
0482デフォルトの名無しさん
2014/09/16(火) 12:28:01.31ID:hd4XZYurfoo = "bar"
foo = "hoge"
のようにするとfooにbarが代入された後それをhogeで上書きすることになりますが、fooにbarを代入した後fooの中身のbarをhogeの変数名にして、
bar = "hoge"
という変数が作りたいです。
0483デフォルトの名無しさん
2014/09/16(火) 12:35:51.91ID:4hbcghNrp array1 = "1日2時間3分4秒".split(/(?=\d+(?:日|時間|分|秒))/) #数字+単位の直前で分割
p array2 = "1日2時間3分4秒".split(/(?<=日|時間|分|秒)/) #単位の直後で分割
p array3 = "1日2時間3分4秒".scan(/\d+(?:日|時間|分|秒)/) #数字+単位を抽出
#「正規表現リテラル =~ 文字列」の場合だけ作動する名前つきグルーピングをローカル変数に設定する微妙な機能
/(?<day>\d+日)(?<hour>\d+時間)(?<min>\d+分)(?<sec>\d+秒)/ =~ "1日2時間3分4秒"
p [day,hour,min,sec]
p last_match
0484デフォルトの名無しさん
2014/09/16(火) 12:42:50.87ID:4hbcghNr向くも向かないも
関数型っぽい書き方をするってだけの話なんで
簡潔に記述できるのならそれでいいじゃない
本物の関数型と違って
Cのメソッドだけですむなら速くなったり
余計にオブジェクト生成したりして逆に遅くなったりするかもしれないけど
0485デフォルトの名無しさん
2014/09/16(火) 21:54:00.55ID:rOfVI/V/---
[d1, d2]
---
- x1
- x2
...
names : [test, test2]
emails: {main: [email protected], sub: [email protected]}
↓のスクリプトでパース使用としたところ
require 'yaml'
File.open('sample.yml') do |io|
YAML.load_documents(io) do |d|
p d
end
end
↓のエラーが出ました。
/Users/bacchi/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/psych.rb:373:in `parse': (<unknown>): did not find expected <document start> at line 1 column 1 (Psych::SyntaxError)
from /Users/bacchi/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/psych.rb:373:in `parse_stream'
from /Users/bacchi/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/psych.rb:456:in `load_stream'
from /Users/bacchi/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/psych/deprecated.rb:29:in `load_documents'
from parse.rb:4:in `block in <main>'
from parse.rb:3:in `open'
from parse.rb:3:in `<main>'
「...」をコメントアウトしたところ、きちんとパースできたのですがなぜ、「...」が入るとエラーが発生するか全くわかりません。
どなたかご存知の方がいらっしゃればぜひ教えていただきたく。。
環境ですが、OSはOS X 10.9、rubyのバージョンは2.1.2p95です。
よろしくお願いします。
0486デフォルトの名無しさん
2014/09/16(火) 22:32:15.86ID:UfZMMld+0487デフォルトの名無しさん
2014/09/16(火) 22:40:56.77ID:0yIjZIb5>>475は副作用を使わないのが関数型だと言っているから>>476の突っ込みは妥当
コレクション操作にラムダ使って宣言的に書いたりするのは
今時の言語ではRubyに限らず全く珍しくないし
0488デフォルトの名無しさん
2014/09/16(火) 22:55:01.92ID:qqfxAbb8...以降は無視される と思ってるのかもしれんがたぶん違う
あくまで1ドキュメント読み込むYAML.loadの場合はドキュメントの終了までしか読み込まないから無視されてるように見えるだけ
load_streamはストリーム全体(複数ドキュメント)を読み込む
...はそのドキュメントが終了したことを示す記号
なので直後にはドキュメント開始の記述がないとパースエラーになる
ドキュメントの開始は(%YAMLとかのディレクティブの後に)---で、その間に許されてる記述は空行か...だけっぽいね
0489デフォルトの名無しさん
2014/09/16(火) 23:08:20.53ID:+Ut5bl5+>>>476の突っ込みは妥当
もしも「Lisp は(関数型言語ではなく)手続き型言語である」という
仮説が正しければ、妥当だね
実際、世の中には「純粋関数型言語にあらずんば関数型言語にあらず」という、
いわゆる「ハスケラ」という人達がいて、彼らはそう主張している
おそらく >>476 や >>487 はハスケラ症の患者さんなんだと思われる
>366 名前: デフォルトの名無しさん Mail: sage 投稿日: 2011/10/26(水) 12:25:43.06
>>>365
>それはハスケラ特有の症例で、心の病の一つ
>
>ハスケルという言語を使っていると、世の中のあらゆる事柄すべてが
>ハスケルを中心に廻っているように見えるらしい
>従って、あらゆる関数型言語は静的実行かつ静的型付けでなければならないし、
>遅延評価が常識であり、一切の副作用は認めようとしない
>
>ハスケラにとって関数型言語とはハスケルのことであり、
>その窓から見える世界が彼らのすべて
あとツッコミを入れると、
> コレクション操作にラムダ使って宣言的に書いたりするのは
> 今時の言語ではRubyに限らず全く珍しくないし
一般にRuby コミュニティで「ラムダ」とは、組み込み関数の Kernel#lambda { .... }、いわゆる関数オブジェクトを指す
そしてコレクション操作だと「ブロックを使って宣言的に書く」というふうに表現する
ブロックはラムダ式の構文糖という些細な工夫でしかないけれど、
ブロックがあるおかげで関数型プログラミングのコードを(ブロック構文が無い言語と比較すると)簡潔に書ける
(逆にブロックを使わず明示的にラムダ lambda { ... } が必要になるケースはほとんどない)
これもまた、Ruby が(他のスクリプト言語と比較して)関数型プログラミングに適しているという理由の一つになる
0490デフォルトの名無しさん
2014/09/16(火) 23:52:05.60ID:rOfVI/V/... の後に --- を入れたところ、エラーは発生しませんでした!
>>488
YAMLファイルを下記のようにして、スクリプトをYAML.load_fileで処理を行ったところ
... の部分まで評価されました!
- d1
- d2
- d3
...
- d4
お二人共ありがとうございました!
すごく勉強になりました!
0491デフォルトの名無しさん
2014/09/17(水) 02:00:04.30ID:B5vXdL5Pまたお前か。Hash を使えば?
foo = Hash.new
foo["bar"] = "hoge"
または、foo = {"bar" => "hoge"}
barがSymbol なら、foo = {bar: "hoge"}
bar = :hoge
Symbolとは、識別子に使うラベルをオブジェクトにしたもの
0492デフォルトの名無しさん
2014/09/17(水) 03:43:25.15ID:OF7t35vf0493デフォルトの名無しさん
2014/09/17(水) 17:15:09.22ID:or6PO8CMhttp://awabi.2ch.net/test/read.cgi/news4plusd/1410895382/
0494デフォルトの名無しさん
2014/09/18(木) 00:44:22.54ID:mtGMypIE>>483
> p array3 = "1日2時間3分4秒".scan(/\d+(?:日|時間|分|秒)/) #数字+単位を抽出
求めていたのはまさにこれです!
ありがとうございます!
「?:」の書き方はググってもなかなか理解できませんでしたが、すごく強力ですね
他の書き方も含め、たいへん勉強になりました
アドバイスしていただきありがとうございました
0495デフォルトの名無しさん
2014/09/18(木) 21:27:04.44ID:im6XLLWp>> またお前か。
?多分違う人だと思います。
それはさておき、回答有難うございます。
ハッシュでやってみます。
0496デフォルトの名無しさん
2014/09/19(金) 01:35:30.84ID:Y6OdBODfいったい何がやりたかったのか...?
0497デフォルトの名無しさん
2014/09/19(金) 02:31:51.15ID:HyAusHv80498デフォルトの名無しさん
2014/09/19(金) 09:11:37.59ID:/ZlJUhOE逆ポーランド記法に変換したい
0499デフォルトの名無しさん
2014/09/19(金) 09:19:12.31ID:OJCIiOtw0500デフォルトの名無しさん
2014/09/19(金) 10:50:32.58ID:SNqHawTKヒント:自演
0501デフォルトの名無しさん
2014/09/19(金) 12:22:00.17ID:IEBJm2pX>Symbolとは、識別子に使うラベルをオブジェクトにしたもの
の説明は、合っているのか?
0502デフォルトの名無しさん
2014/09/19(金) 12:32:39.90ID:9nFtEcDJfoo = {:bar => "hoge"}
でハマる
0503デフォルトの名無しさん
2014/09/19(金) 20:32:12.22ID:PiEEbsAh本格的にやるならRacc使うのがいいかも
0504デフォルトの名無しさん
2014/09/19(金) 23:55:28.02ID:T5wmPk5Ihttp://ideone.com/CWP5Vg
0505デフォルトの名無しさん
2014/09/20(土) 08:01:45.32ID:2AptYtlcありがとうございます!
0506デフォルトの名無しさん
2014/09/20(土) 08:12:13.25ID:QLH+ZR2V5+4-3 この式なら
543-+ なのか。
54+3- ずっとこうだと思ってた・・・///
0507デフォルトの名無しさん
2014/09/20(土) 08:44:51.69ID:p579UTgtが正しい
0508デフォルトの名無しさん
2014/09/20(土) 09:39:56.12ID:+CrzR0fGちゃんと優先度つけたうえで直してみた
http://ideone.com/u8Ebfn
0509デフォルトの名無しさん
2014/09/20(土) 10:37:56.97ID:F4RvXBbTString FOO = "foo";
のように定数を作ってまとめておく、とかやってたんですが、Ruby の場合は Symbol 使ってればいちいち定数を定義したりはしない、という認識で合ってますか?
それとも
FOO = :foo
みたいな感じで Symbol も複数箇所で使うなら定数化しておいたほうが良かったりしますか?
0510デフォルトの名無しさん
2014/09/20(土) 10:52:54.90ID:+CrzR0fG他言語でも定義しておく理由って変更があったとき修正箇所を少なくするためでしょ
シンボルはC言語のenumや#defineで作ったラベル名みたいな役割
その場合はその値に意味はないので定義しておく必要はない
と思ってるけどどうなんでしょ
0511デフォルトの名無しさん
2014/09/20(土) 11:08:48.42ID:yzKVnral値が同じことは保証されてる?
■ このスレッドは過去ログ倉庫に格納されています