プログラミング言語Rubyについての、初心者向けスレです。質問・要望・雑談などどうぞ。
質問するときは、OSやRubyのバージョン、エラーメッセージを書いたほうがいいお
Ruby on RailsについてはWEBプログラミング板で
前スレ
Ruby 初心者スレッド Part 60
https://mevius.2ch.net/test/read.cgi/tech/1493398918/
るりまサーチ (リファレンス検索)
http://rurema.clear-code.com/
Rubyist Magazine - るびま
http://jp.rubyist.net/magazine/
逆引きRuby
http://www.namaraii.com/rubytips/
Ruby 初心者スレッド Part 61 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
2017/08/25(金) 15:59:11.22ID:HsL9LVKJ
2017/08/25(金) 16:05:20.69ID:0nrK3Ckt
大規模障害記念
2017/08/25(金) 16:05:48.85ID:HsL9LVKJ
たのしいRuby 第5版、2016
Effective Ruby、2015
メタプログラミング Ruby 第2版、2015
Rubyのしくみ、2014
改訂3版 基礎 Ruby on Rails、黒田努・佐藤和人、2015
リファクタリング:Rubyエディション、2010
Effective Ruby、2015
メタプログラミング Ruby 第2版、2015
Rubyのしくみ、2014
改訂3版 基礎 Ruby on Rails、黒田努・佐藤和人、2015
リファクタリング:Rubyエディション、2010
2017/08/25(金) 16:10:23.56ID:HsL9LVKJ
ギリセーフで間に合った
2017/08/25(金) 16:11:37.65ID:sLUvaIRs
6デフォルトの名無しさん
2017/08/25(金) 16:12:33.08ID:BwHFndLq each_with_object
なんて初めて見た。
a=[[1,2],3,4,5,[6,7],8,[9,10],[11,12],[13,14]]
b = a.each_with_object([[],[]]) {|(x, y), acc| acc[0] << x; acc[1] << (y || x) }
p b # => [[1, 3, 4, 5, 6, 8, 9, 11, 13], [2, 3, 4, 5, 7, 8, 10, 12, 14]]
なんて初めて見た。
a=[[1,2],3,4,5,[6,7],8,[9,10],[11,12],[13,14]]
b = a.each_with_object([[],[]]) {|(x, y), acc| acc[0] << x; acc[1] << (y || x) }
p b # => [[1, 3, 4, 5, 6, 8, 9, 11, 13], [2, 3, 4, 5, 7, 8, 10, 12, 14]]
7デフォルトの名無しさん
2017/08/25(金) 16:18:41.59ID:BwHFndLq evens = (1..10).each_with_object([]) {|i, a| a << i*2 }
# => [2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
each_with_objectってのは引数一個(空の配列)とブロックを取るみたい。
ブロックには、引数が2つ渡り、最初は、列挙される要素、2番目は引数(空の配列)が渡るらしい。
ブロックの戻値がeach_with_objectの戻値かな?
# => [2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
each_with_objectってのは引数一個(空の配列)とブロックを取るみたい。
ブロックには、引数が2つ渡り、最初は、列挙される要素、2番目は引数(空の配列)が渡るらしい。
ブロックの戻値がeach_with_objectの戻値かな?
8デフォルトの名無しさん
2017/08/25(金) 16:25:39.04ID:BwHFndLq a=[[1,2],3,4,5,[6,7],8,[9,10],[11,12],[13,14]]
p a
a.each{|(x, y)| puts "x = " + x.to_s + "y = " + y.to_s}
このtupleみたいな(x, y)ってのは何だ?
Rubyにtupleがあるのか?
p a
a.each{|(x, y)| puts "x = " + x.to_s + "y = " + y.to_s}
このtupleみたいな(x, y)ってのは何だ?
Rubyにtupleがあるのか?
2017/08/25(金) 16:26:35.62ID:4MOWRfGQ
ブロック中での最後の評価値、じゃないのがこれの使い易いところ
戻り値には、each_with_object(ここのオブジェクト)を返す
injectでやろうとして
b = a.inject([[],[]]) {|acc, (x, y)| acc[0] << x; acc[1] << (y || x); acc}
ブロックの最後でこうやってaccを返そうとして頑張っちゃうような時には考えたい
戻り値には、each_with_object(ここのオブジェクト)を返す
injectでやろうとして
b = a.inject([[],[]]) {|acc, (x, y)| acc[0] << x; acc[1] << (y || x); acc}
ブロックの最後でこうやってaccを返そうとして頑張っちゃうような時には考えたい
10デフォルトの名無しさん
2017/08/25(金) 16:30:33.90ID:BwHFndLq よく判らんが、要素2個の配列をブロックの引数で(x, y)って受け取れば、
2個の要素はx,yとして受け取れるらしい。
2個の要素はx,yとして受け取れるらしい。
11前スレ996
2017/08/25(金) 16:55:24.12ID:sLUvaIRs aの配列の個数が変わる場合があるので、とりあえず以下のようにしてみたのですがrslt1とrslt2で結果が異なるのは何故ですか?
tobj==[[],[]]はtrueと出ます。
a=[[1,2],3,4,5,[6,7],8,[9,10],[11,12],[13,14]]
tobj=[[]]*2
rslt1 = a.each_with_object([[],[]]) {|x,tary|; tary.each_with_index{|n,i| x.instance_of?(Array) ? tary[i]<<x[i] : tary[i]<<x}}
rslt2 = a.each_with_object(tobj) {|x,tary|; tary.each_with_index{|n,i| x.instance_of?(Array) ? tary[i]<<x[i] : tary[i]<<x}}
tobj==[[],[]]はtrueと出ます。
a=[[1,2],3,4,5,[6,7],8,[9,10],[11,12],[13,14]]
tobj=[[]]*2
rslt1 = a.each_with_object([[],[]]) {|x,tary|; tary.each_with_index{|n,i| x.instance_of?(Array) ? tary[i]<<x[i] : tary[i]<<x}}
rslt2 = a.each_with_object(tobj) {|x,tary|; tary.each_with_index{|n,i| x.instance_of?(Array) ? tary[i]<<x[i] : tary[i]<<x}}
12前スレ996
2017/08/25(金) 17:00:35.79ID:sLUvaIRs すみません。上のは不要なセミコロンが入っていました。(動作は問題ないみたいですが)
a=[[1,2],3,4,5,[6,7],8,[9,10],[11,12],[13,14]]
tobj=[[]]*2
rslt1 = a.each_with_object([[],[]]) {|x,tary| tary.each_with_index{|n,i| x.instance_of?(Array) ? tary[i]<<x[i] : tary[i]<<x}}
rslt2 = a.each_with_object(tobj) {|x,tary| tary.each_with_index{|n,i| x.instance_of?(Array) ? tary[i]<<x[i] : tary[i]<<x}}
p rslt1,rslt2
a=[[1,2],3,4,5,[6,7],8,[9,10],[11,12],[13,14]]
tobj=[[]]*2
rslt1 = a.each_with_object([[],[]]) {|x,tary| tary.each_with_index{|n,i| x.instance_of?(Array) ? tary[i]<<x[i] : tary[i]<<x}}
rslt2 = a.each_with_object(tobj) {|x,tary| tary.each_with_index{|n,i| x.instance_of?(Array) ? tary[i]<<x[i] : tary[i]<<x}}
p rslt1,rslt2
2017/08/25(金) 17:06:01.66ID:W3qddKKH
Rubyの初め方
ルビィの冒険
↓
たのしいRuby、初めてのRuby
↓
パーフェクトRuby
↓
Rubyベストプラクティス
EffectiveRuby
メタプログラミングRuby1版or2版
Rubyによるデザインパターン
↓
リファクタリングRubyエディション
Rubyのしくみ。
ウェブアプリ方面
パーフェクトRubyonRails
RubyonRails5アプリケーション・プログラミング
Docker教科書
JapaScript本格入門第二版
入門Git
GitHub実践入門
SQL 第2版 ゼロからはじめるデータベース操作
達人に学ぶ SQL徹底指南書
SQLアンチパターン
ルビィの冒険
↓
たのしいRuby、初めてのRuby
↓
パーフェクトRuby
↓
Rubyベストプラクティス
EffectiveRuby
メタプログラミングRuby1版or2版
Rubyによるデザインパターン
↓
リファクタリングRubyエディション
Rubyのしくみ。
ウェブアプリ方面
パーフェクトRubyonRails
RubyonRails5アプリケーション・プログラミング
Docker教科書
JapaScript本格入門第二版
入門Git
GitHub実践入門
SQL 第2版 ゼロからはじめるデータベース操作
達人に学ぶ SQL徹底指南書
SQLアンチパターン
14デフォルトの名無しさん
2017/08/25(金) 17:51:40.95ID:HsL9LVKJ リファクタリングRubyエディション
Rubyのしくみ
このふたつは必読
Rubyのしくみ
このふたつは必読
2017/08/25(金) 18:32:17.61ID:w/d6Mddl
>>前スレ989
それ継承でなくて上書きがダメって言ってるだけじゃん
Objectクラス継承しちゃうんだからもうオブジェクト指向言語使うのやめなよ
それ継承でなくて上書きがダメって言ってるだけじゃん
Objectクラス継承しちゃうんだからもうオブジェクト指向言語使うのやめなよ
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 「東京で年収1000万世帯」は負け組か?地方の「イオンで楽しそうな家族👨‍👧‍👦」がまぶしく見える [パンナ・コッタ★]
- 【円安】キットカット値上げ 一部の「10枚入りパック」千円超え 3月から [1ゲットロボ★]
- 【速報】立花孝志容疑者、起訴 ★2 [おっさん友の会★]
- 【テレビ】玉川徹「これ天災じゃなくて人災でしょ。責任どうするんだ」 日本のホテル、中国人観光客からのキャンセルが相次ぐ★2 [冬月記者★]
- 【おっぱい】「女性を見つけた瞬間に揉みたいという衝動にかられ…」路上で25歳女性にわいせつ行為か 21歳土木作業員の男を逮捕★2 [nita★]
- 石破茂氏、「高市さんよくぞ言った」の空気に待った 存立危機事態…考えてはいても「公の場で言うことか」:東京新聞 ★3 [少考さん★]
- ネトウヨのイライラした車、郵便局に突っ込む [805596214]
- 【朗報】最近の日本、ルックスがヤバい子どもが絶滅しているらしい [242521385]
- 【高市速報】立花孝志起訴wwwwwwwwwwwwww [931948549]
- 中国「誠意を見せる気があるなら高市早苗は辞任しろ。」キタ━(゚∀゚)━! [153490809]
- 五等分の花嫁でアナルが汚そうなキャラ
- こういう愛国ポルノ動画ってやっぱ反社が作らせてんの? [904151406]
