Ruby 初心者スレッド Part 61 [無断転載禁止]©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
2017/08/25(金) 15:59:11.22ID:HsL9LVKJ
プログラミング言語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/
2017/11/05(日) 13:25:33.32ID:P7Kt20uM
でさ、Pythonの話なんだけど、あの言語標準で
なんでもかんでも用意するっていうのは素晴らしいと思うわけ
2017/11/05(日) 13:31:15.46ID:gkdND+eq
>>727
「過ち」だと言い切るならそれを披露してこいよ
RubyスレでだけやっててもそれはただRubyを叩きたいだけにしか見えないよ
2017/11/05(日) 14:19:09.06ID:WRVCeBNz
>>720
維持しようとするよりも見捨てるコストのほうが安くなった
おそらくあなたも私と同じようにこのスレは1日に1回見るか見ないかになってるはず
そのうち週1にでもなるのだろう
2017/11/05(日) 16:46:03.37ID:dOXftlaT
荒らす意図でないならRuby議論スレ立てな。スレタイ読める?
732デフォルトの名無しさん
垢版 |
2017/11/05(日) 18:38:16.07ID:S5vmMqw3
おいこら
自演してスレ立てんなどあほ

Pythonスレいけやボケ
2017/11/05(日) 20:12:15.28ID:sB6tkFho
荒らしってまだいるの?
734デフォルトの名無しさん
垢版 |
2017/11/05(日) 20:43:53.38ID:vWNY+clC
>>733
初心者スレでしか議論ゴッコが出来ない奴も荒らしだろうな。
735デフォルトの名無しさん
垢版 |
2017/11/05(日) 22:24:18.88ID:S5vmMqw3
>>733
触っちゃダメ
荒らしを構ってるのは荒らし本人だから
2017/11/05(日) 22:44:38.97ID:sB6tkFho
>>735
これだけ長々やってるならどんなにIDを変えようがリホモだって固まってくる筈だから、
サーバ管理者に言えば各リホモ教えて貰えたり、
永久ban等の対策してもらえるんじゃない?
サーバ管理者自身が荒らしてるのでなければだけど
2017/11/05(日) 23:25:03.80ID:Gz3QD+PD
>>736
アッー!はお断りなんですけど
738デフォルトの名無しさん
垢版 |
2017/11/05(日) 23:33:25.37ID:S5vmMqw3
>>736
請求していろいろ引っ張る前に、次から注意文を書かないといけないな
荒らしを構うと荒らし本人と判断されてリモホ請求されます、とか
2017/11/06(月) 00:33:47.14ID:JFyWwn9i
注意してもしなくても続けるのが荒らしなんだから問答無用で良い
2017/11/06(月) 01:18:05.29ID:+FH43uxL
>>736
推測じゃなくて実際にやってみ

基本は削除依頼だ
http://qb5.5ch.net/saku/index2.html
http://qb5.5ch.net/test/read.cgi/saku/1352422796/l50
削除が追いつかないとみなされたときにのみ規制が考慮される
削除議論スレ
http://agree.5ch.net/test/read.cgi/sakud/1116892398/l50
サーバに負担をかけるとされるときは規制議論にスレが立てられる
http://agree.5ch.net/sec2chd/subback.html

もう一度だけ持論を述べさせてもらうなら、>>730で書いたとおり、
いまや見捨てるコストのほうが維持しようとするコストより圧倒的に安い
741デフォルトの名無しさん
垢版 |
2017/11/06(月) 09:25:16.33ID:xdkFQOua
荒らしが何か言ってるが無視無視
2017/11/06(月) 12:22:13.30ID:2TAusKQx
荒らしを構ってる奴は荒らし本人の自演だから、構ったりせず見つけ次第、自演を指摘して排除すること
荒らし叩きに見せて持論を言い出す奴も荒らし本人だから、これも自演を指摘して排除すること
他の言語について話そうとする奴は、その言語スレから排除されてRubyスレに流れ着いた荒らしだから、これも構ったりせず元の言語スレへ誘導すること

注意するとしたらこんな感じか?
これでも続けるのが荒らしだから、見分けやすくなるだろう
2017/11/06(月) 13:07:39.87ID:wL8uE6G5
>>729
誰しも神ではないから本当の意味での過ちかは誰にもわからないし
そこの部分の定義ははっきり言ってどうでもよいが
ともかく過ちを訂正する振る舞いが行われた、という事実だけで十分
現象としての事実だけが重要だし、それ以上は求めてない

それに、「過ちだったか?」などという議論の段階では無くて
もう既に訂正されているし、意思が行動で示されてるし、終わったこと

>「過ち」だと言い切るならそれを披露してこいよ
何度も言ってるが、もう済んだ過去のことを無理に掘り起こして
つべこべ言う趣味はない
744デフォルトの名無しさん
垢版 |
2017/11/06(月) 14:08:37.90ID:xdkFQOua
さっそく出やがったな
すれ違いじゃぼけ
2017/11/06(月) 14:24:36.94ID:2TAusKQx
>荒らしを構ってる奴は荒らし本人の自演だから、構ったりせず見つけ次第、自演を指摘して排除すること
>荒らし叩きに見せて持論を言い出す奴も荒らし本人だから、これも自演を指摘して排除すること
>他の言語について話そうとする奴は、その言語スレから排除されてRubyスレに流れ着いた荒らしだから、これも構ったりせず元の言語スレへ誘導すること

毎回コレをはっても、続けるようなら悪質だよ
後は粛々と関連する法令の元で弁護士に請求してもらって、法的に措置とるしかない
2017/11/06(月) 14:58:55.26ID:Vd7vqFxu
荒らしがどうこう言ってる奴らのほうが圧倒的に鬱陶しい
747デフォルトの名無しさん
垢版 |
2017/11/06(月) 15:11:00.00ID:xdkFQOua
荒らしが火病っとる
2017/11/06(月) 15:18:46.17ID:JFyWwn9i
もう相当長く粘着されてるからこの辺りで荒らしとはケリをつけて良いと思う
いい加減にうざい
749デフォルトの名無しさん
垢版 |
2017/11/06(月) 15:37:48.41ID:xdkFQOua
>荒らしを構ってる奴は荒らし本人の自演だから、構ったりせず見つけ次第、自演を指摘して排除すること
>荒らし叩きに見せて持論を言い出す奴も荒らし本人だから、これも自演を指摘して排除すること
>他の言語について話そうとする奴は、その言語スレから排除されてRubyスレに流れ着いた荒らしだから、これも構ったりせず元の言語スレへ誘導すること

荒らしはこれ張られるのが物凄く嫌いみたいだな
荒らしってばれちゃうから
2017/11/06(月) 15:49:08.45ID:6JLIEeFJ
>プログラマは楽できないし、マシンに負荷がかかるだけだった

嗤っちゃ遺憾がほんそれの通りだ
みんな裸の王様が好きなのかそれともそのことにすら気付いていないあほばっか
751デフォルトの名無しさん
垢版 |
2017/11/06(月) 15:59:10.22ID:xdkFQOua
また出やがった
2017/11/06(月) 16:01:06.01ID:JjVH4ZAK
上に出てたテンプレ張ってとことん荒らしを炙り出してやればいい
誰も困らないし
つーか、荒らしの一人芝居がキモイ
753デフォルトの名無しさん
垢版 |
2017/11/06(月) 16:10:20.13ID:xdkFQOua
荒らしを構ってる奴は荒らし本人の自演だから、構ったりせず見つけ次第、自演を指摘して排除すること
荒らし叩きに見せて持論を言い出す奴も荒らし本人だから、これも自演を指摘して排除すること
他の言語について話そうとする奴は、その言語スレから排除されてRubyスレに流れ着いた荒らしだから、これも構ったりせず元の言語スレへ誘導すること

とりあえず荒らしはこれを破りたがるから踏み絵にして、IPやリモホ請求するか
2017/11/06(月) 16:12:38.62ID:Vd7vqFxu
そもそも誰のことを荒らしと言ってるのかがわからないし、過剰反応してて気味が悪い
755デフォルトの名無しさん
垢版 |
2017/11/06(月) 16:15:07.42ID:5ghIEcyF
散々、荒らされたけどこれで決着か
どれくらい荒らされてたんだっけ?
半年?
756デフォルトの名無しさん
垢版 |
2017/11/06(月) 16:26:03.44ID:xdkFQOua
それぐらいじゃない?
流石にこんなに長期間荒らされたら誰だって対策もとるし、
過剰反応とかなんとか苦情を言い出すのは自演してる荒らし意外いないわ
2017/11/06(月) 16:33:56.86ID:5ghIEcyF
一般人を装った荒らしが文句を言うかもしれないけど、
ここは初心者用の質問スレだから、荒らしの排除は誰からも文句でないよ
758デフォルトの名無しさん
垢版 |
2017/11/06(月) 16:40:49.63ID:xdkFQOua
これだけ注意しても荒らしは意固地になって自演してくれるわけだから
ある意味、わかりやすい
2017/11/06(月) 18:00:13.17ID:RNAOm4Mq
>>753
するかではなく君がやりなさい
君が何を考えているかは君しかわからない
5chでのやり方は教えたはずだ
2017/11/06(月) 18:44:46.08ID:5ghIEcyF
>>758
ログ潜ったらもっと前から荒らしてたわこの荒らし
ID換えて一般人装っては荒らしを繰り返してる
本物の確信犯
やり口が759と同じ
2017/11/06(月) 22:49:22.33ID:tjV5ukzM
【ActiveScript】RubyをWindowsで使うスレ【GUI】
http://mevius.2ch.net/test/read.cgi/tech/1155031689/

なんか連投してる奴がいて落ちたな
762デフォルトの名無しさん
垢版 |
2017/11/07(火) 07:31:48.57ID:aiMeo2fF
class Hoge
require 'matrix'

class Vector
def huga
return "huga"
end
end

def self.get_vector(array)
return Vector[ *array ]
end

end
p Hoge.get_vector([1,2,3])
#=> 11:in `get_vector': undefined method `[]' for Hoge::Vector:Class (NoMethodError)

これやるとVectorの元のメソッドが未定義っていわれるんだけど、
オープンクラスなライブラリとそうじゃないライブラリがあるの?
class Vector < Vectorって派生させてやればメソッドの追加はできるけど、ものすごく気になる
2017/11/07(火) 08:10:41.00ID:uepCx6fG
クラスを一旦閉じてから、また開けば?
2017/11/07(火) 08:46:40.88ID:pIiosI/w
現実を正確にとらえる力や想像力が無いのが分かりやすく露呈してて
面白い流れだったから期待してたけど、あまり伸びなかったね
まともな頭のやつは流石にドン引きしたか
765デフォルトの名無しさん
垢版 |
2017/11/07(火) 09:20:39.93ID:aiMeo2fF
>>763
どういうこと?
Hogeクラス内でVectorクラスにメソッドを追加するんじゃなくて、
外でVectorクラスにメソッドを追加するって事?
766デフォルトの名無しさん
垢版 |
2017/11/07(火) 10:14:55.61ID:sYu75wDW
Hogeクラス内でVectorクラスを定義すると、Hoge::Vectorクラスを定義する事になる
当然、require 'matrix'でロードされるのはHoge::Vectorクラスではなく、トップレベルで定義されたVectorクラスだから、違うクラスを定義している事になる
self.get_vector(array)メソッドはmatrixのVectorクラスではなくHoge::Vectorクラスのメソッドを呼び出そうとしてそんなメソッドはありませんよって言ってるわけ

matrixのVectorクラスはトップレベルで定義されているからどこからでも呼べるけど、
追加の定義を行うにはトップレベルで記述するか、下記のように記述する必要がある
class Hoge
require 'matrix'
class ::Vector
def huga
return "huga"
end
end
end
p Vector[1,2,3].huga


それはそうと、初心者用の質問スレで質問をブッチして意味不明な事を言い出す奴は何考えてるんだ?
ここは初心者用の質問スレだぞ?
そんなに自己主張したいなら他スレ行けよ
2017/11/07(火) 10:33:50.08ID:uepCx6fG
>Vector[ *array ]
Vector クラスに、[ ] のメソッドが無いのだろ

Vector クラス内で、Vector を使っているのが、おかしいのかも?
self を使えば?

メタプログラミングは、この本を読む。
メタプログラミング Ruby 第2版、2015

「ruby オープンクラス」で検索して
2017/11/07(火) 10:51:58.21ID:AVR6D+uA
Vectorに[]あるから
2017/11/07(火) 11:41:45.24ID:aiMeo2fF
Rubyの内部クラスの定義ってそういう事なんだ
すごく勉強になった
ついでにもう一つ質問
特定の内部クラスとしてtopレベルにあるクラスを継承した時、
クラスの一部が機能しなくなるクラスってあるの?
継承すれば元のクラスの全部を引き継ぐんだよね?
2017/11/07(火) 16:38:43.71ID:speVoQlz
>>761
どうせおまえが犯人だろ
2017/11/07(火) 16:58:38.40ID:qTtPzD5n
>>770
お前がそう思うんなら(ry
お前の中ではな
772デフォルトの名無しさん
垢版 |
2017/11/07(火) 20:00:55.15ID:twCDXPE4
同じRubyファイル内で定義したメソッドを別のメソッド内で呼び出すことってできる?
AAA.rbってファイルがあって、その中に『def A』ってメソッドと『def B』ってメソッドがあって、メソッドBの中でメソッドAを呼び出す的な
2017/11/07(火) 20:18:12.84ID:EPRxDT20
def a
hoge
end

def b
a
end
774デフォルトの名無しさん
垢版 |
2017/11/07(火) 20:22:59.97ID:twCDXPE4
ごめん、普通にできた
2017/11/07(火) 21:07:47.29ID:PZcCqrnZ
クラスメソッド、インスタンスメソッドなど継承される。
変数に関する記憶が怪しかったからちょっと確認したら、
クラス自身のインスタンス変数のみが警鐘されない買った。

class A
&nbsp; X = self&nbsp; &nbsp; # 定数は継承される!
&nbsp; @y = self &nbsp; # クラス自身のインスタンス変数は継承されない!
&nbsp; @@z = self&nbsp; # クラス変数は継承されう!
end

class B < A
&nbsp; p X: X, y: @y, z: @@z
&nbsp; # => {:X=>A, :y=>nil, :z=>A}
end
2017/11/07(火) 21:09:24.61ID:PZcCqrnZ
>>769
アンカ忘れちった >>775
あと誤字が多かった
2017/11/07(火) 21:09:59.57ID:hhPr1fc6
>>770
だから何かを問題だと思ってるならまずは削除依頼きちんとしなさいって言われてるだろ
私たちはあなたが何を考えているかわからないから手伝えないけど、あなたが何かすることを妨げることはしない
778デフォルトの名無しさん
垢版 |
2017/11/07(火) 22:04:06.56ID:sYu75wDW
>>777
いい加減うせろよ荒らし
これ以上スレの進行を妨害するな
それと下記のテンプレ読めや

>荒らしを構ってる奴は荒らし本人の自演だから、構ったりせず見つけ次第、自演を指摘して排除すること
>荒らし叩きに見せて持論を言い出す奴も荒らし本人だから、これも自演を指摘して排除すること
>他の言語について話そうとする奴は、その言語スレから排除されてRubyスレに流れ着いた荒らしだから、これも構ったりせず元の言語スレへ誘導すること
2017/11/08(水) 08:00:52.41ID:jFXmR+bn
>>778
だからそれを他人に強制して何か変えた気になる前にあなたの考えできちんと行動しろと言われているのでは
2017/11/08(水) 09:11:49.22ID:JQY6Yohe
>>779
お前モナ
781デフォルトの名無しさん
垢版 |
2017/11/08(水) 10:02:46.51ID:D96h8IHt
テンプレのおかげで誰が荒らしかすぐ分るようになったな
さすがに半年以上も荒らされて、みんなぶち切れてたし
2017/11/08(水) 10:09:02.34ID:hy4K9jZ1
なかなか面白い流れだな
783デフォルトの名無しさん
垢版 |
2017/11/08(水) 10:28:19.29ID:BuB9+Tz4
コードで間接参照の概念が必要になったとき、
Arrayクラスでオブジェクトを包装してやり取りしてるんだけど
Ruby的には正しいのコレ?
2017/11/08(水) 11:01:17.22ID:/a2FPcjq
そもそも何が間違いかなんて見方はナンセンス
筋が悪いとは思う
2017/11/08(水) 13:25:58.44ID:KVemNC3B
>>783
Rubyに限らないが、一般論でいうなら、低い抽象度で物事を考えすぎてる
例えば文字列中のカーソルの位置を進めるなら、
それは pos[0] += 1 ではなく cursor.next_char() だろ
2017/11/08(水) 20:27:09.27ID:yXBCWp2w
Rubyでポインタが必要だと思ったことがまずない
Cを難解にしてるのがポインタだし
2017/11/08(水) 23:27:04.92ID:CJyDItek
関数やprocやlambdaでSystemStackErrorを起こすとRuby自体が落ちちゃうんだけどこれって仕様?


https://ideone.com/GmkU9W
IDEONEでは何も問題ないんだけど
うちの環境(UbuntuとWindows8.1)ではnested_method1の2回目の途中でRubyが落ちる
1.8.7ではなぜか問題なく動くがそれ以外のバージョンは全て全滅
2017/11/08(水) 23:28:13.06ID:CJyDItek
ああ1行目は関数じゃなくてメソッドね
2017/11/09(木) 08:01:53.37ID:LcbWCl7/
メモリーがハード故障起こしてると落ちたりするし、マルウェアからの保護機能で落とされてる可能性も有る
落ちる現象がハードウェア要因なのかソフトウェア要因なのかいまいち判断付かないから、
CPUからM/B、OSのバージョンとかRubyのインスコ環境や実行環境をもっと書いて

なんだったらVMWareでシンプルな環境を構築してそこでコードを試して、落ちるかどうか確認する方法もある
2017/11/09(木) 08:11:17.58ID:O2u0zvzZ
>>787
ruby のBug だと思う。
手元の環境だと、2.4.2 2.3.5 2.5.0-preview1 rbx-3.84 でsegfault 、jruby-9.1.13.0 はsegfault は回避してるのを確認した。
1.9 以降で出てきたのは、ruby の実行エンジンが YARV 化されたタイミングでの問題だと思う。
ただ、スタック食いつぶす動作を安全に回避するのは面倒な上に、過度な再帰はプログラムの問題なので優先度は低い扱いになる気がする。
791デフォルトの名無しさん
垢版 |
2017/11/09(木) 09:11:32.41ID:Zo52Bx6X
既知のバグなの?
2017/11/09(木) 10:02:35.59ID:UInw5/Yz
begin - rescue を外に書けってことかな
2017/11/09(木) 10:47:34.59ID:LcbWCl7/
ttps://bugs.ruby-lang.org/projects/ruby/wiki/HowtoReportJa
バグレポートのやりかたのページ貼っておく
794デフォルトの名無しさん
垢版 |
2017/11/09(木) 11:09:27.98ID:Zo52Bx6X
>>792
ruby落ちて
795デフォルトの名無しさん
垢版 |
2017/11/09(木) 11:10:33.69ID:Zo52Bx6X
るんだが
2017/11/09(木) 11:21:25.84ID:UInw5/Yz
外に書いたら落ちないんじゃね
2017/11/09(木) 12:44:30.09ID:lsXbZUw6
>>789-790
ありがとう
SEGVだったんだね
確認してみたところ同様の問題はいくつも報告されてたわ
https://bugs.ruby-lang.org/issues/13412
https://bugs.ruby-lang.org/issues/13596

ちなみに
RUBY_THREAD_VM_STACK_SIZEを10000とか小さい値にすると
>>787は想定通り動く
2017/11/09(木) 15:30:22.12ID:LcbWCl7/
#terget = Proc.new do |x|
#p "nest_in"
#x.call(x)
#p "nest_out"
#end
#terget.call(terget)
proc使ってstack level too deep (SystemStackError)が出るコードって言ったらこんな感じか?
2017/11/09(木) 17:52:29.86ID:hsGRI/CZ
ポインタが難解なのではない、C/C++のポインタの実装が難解なのだ
2017/11/09(木) 17:58:10.14ID:Kt7ooYYm
>>798
(f=->{f[]})[]
2017/11/09(木) 19:19:57.54ID:UInw5/Yz
>>799
+1
802デフォルトの名無しさん
垢版 |
2017/11/09(木) 19:47:42.78ID:LcbWCl7/
平易といわれようが読みやすいんだから仕方がない
def func_recall()
func_recall()
end
proc{func_recall()}.call
2017/11/09(木) 19:58:50.93ID:EJhAj4oK
昨日と同じように今日も池沼のフリして荒らしてきたか
2017/11/09(木) 20:10:42.01ID:Zo52Bx6X
荒らし本人は自演がばれてないと本気で思っていそう
今のうちに例のテンプレ貼っとく
>荒らしを構ってる奴は荒らし本人の自演だから、構ったりせず見つけ次第、自演を指摘して排除すること
>荒らし叩きに見せて持論を言い出す奴も荒らし本人だから、これも自演を指摘して排除すること
>他の言語について話そうとする奴は、その言語スレから排除されてRubyスレに流れ着いた荒らしだから、これも構ったりせず元の言語スレへ誘導すること
2017/11/10(金) 21:19:41.48ID:zSzvlQjG
new以外のインスタンス生成方法を持ってるクラスって、
派生させても元のクラスのインスタンスを生成するんだね

全てのメソッド書き換えるのがすごく面倒なんだけど何か良い方法ない?
806デフォルトの名無しさん
垢版 |
2017/11/10(金) 22:05:04.82ID:tus45AjF
self.class.new
2017/11/10(金) 22:51:06.22ID:zSzvlQjG
class MyArray < Array
end
p (MyArray[1,2,3] + MyArray[1,2,3]).class
#=>Array

上のコードを見てもらえば分るけど、
Arrayを継承したMyArrayのインスタンス同士の演算を行うと、MyArrayでなくArrayのインスタンスが出力される
全てのメソッドの出力をMyArrayのインスタンスになるようにしたいんだけど、
メソッドを全部書き換える以外に良い方法って何かない?
2017/11/10(金) 23:47:08.43ID:fJV6zsPP
>>807
ソースコードを見てみるとArrayの派生クラスであってもArrayとして作成されるようになってる
https://github.com/ruby/ruby/blob/trunk/array.c#L3643

度々似たようなやり取りが起こるけど、この件についてはRubyの仕様として、
改善される兆しが見えない (開発者の変更する必要性が薄そう)
正攻法となるとメーリングリストのruby-devに必要性を訴えて改善するくらいになるんじゃないかなあ
2017/11/11(土) 00:16:49.19ID:JLG7hn9J
>>807
ビルトインクラスは継承すんな、てのがあるらしい
810デフォルトの名無しさん
垢版 |
2017/11/11(土) 01:33:08.56ID:XLuIumW0
確かに、出力するオブジェクトのクラスをメソッドの書き換えしないで派生先や派生元に切り替えられたら便利だよな
2017/11/11(土) 04:45:48.84ID:TdyG/ulQ
しかしそもそもArrayとか継承したいクラスだよな
オープンクラスで直接Array自体の挙動を変えてしまうと
何か問題が起こったときに怖い
812デフォルトの名無しさん
垢版 |
2017/11/11(土) 09:50:02.65ID:5mgMmggv
方法を聞いているんだから感想を言っててどうするよ
一つの方法としてMarshal.dumpとMarshal.load使うってのはどうか?
メソッドで派生元クラスのインスタンスがでてきたら、
そのインスタンスをMarshal.dumpしてクラス部分だけ書き換えてMarshal.loadしてクラスを変えるわけ
2017/11/11(土) 11:50:45.38ID:AwGKm55U
どの言語でも、Array, String などの基本クラスは継承できないし、継承してはならない

prototype.js というライブラリは、基本クラスの動作を上書きして、変更したため、
モンキーパッチと言って、非常に嫌われた

ただし、Rails のような権威が、基本クラスにメソッドを追加するのは、認められている。
これらは、開発保守が継続して行われるため

つまり、個人レベルではダメ
2017/11/11(土) 11:54:48.07ID:7DvP3YTX
どうでもいいよ
どうせRubyなんか書捨てスクリプトにしか使わないし
2017/11/11(土) 12:07:00.75ID:TdyG/ulQ
配列が使いたいときは代替eachが使いたいから
EnumerableかEnumeratorを継承するとか?
2017/11/11(土) 12:08:40.11ID:v8o/qZh1
+ が返すクラスをどうすべきかってだけで、他のメソッドはできるだけ継承したクラスを返すようになってるよ
2017/11/11(土) 12:34:01.09ID:AwGKm55U
基本クラスは、継承するな!

継承よりも、委譲
2017/11/11(土) 14:10:03.21ID:BdEcqbw0
処理系に依ってEnumerable#mapとArray#mapが別実装だったり同じだったりして気持ち悪いから
Array継承するくらいならEnumerableを継承するわ
2017/11/11(土) 14:21:19.83ID:JLG7hn9J
>>818
> 別実装だったり同じだったりして気持ち悪い
オブジェクト指向の考え方を真っ向否定するんですか…w
2017/11/11(土) 15:07:21.47ID:5mgMmggv
また荒らしが進行妨害してるのか
方法聞いてるレスだっつってんだろ

毎度毎度、スレの質問無視して自演で持論を語って荒らすのやめろ
ここは初心者用の質問スレだ
821デフォルトの名無しさん
垢版 |
2017/11/11(土) 16:38:25.00ID:XLuIumW0
確かに、聞いてたのは方法だったな
明らかに見当違いなレス返してた荒らしもいたし
ごめん

質問への回答だけどメソッド書き換えせずにという事だから、
const_get、const_setを使ってその場だけクラスを入れ替えるというのは?
今、適当に思いついたので検証してないけど
822デフォルトの名無しさん
垢版 |
2017/11/11(土) 21:37:18.75ID:05iXsNcy
このスレって雑談OKなのに何言ってるんだか
2017/11/11(土) 22:58:55.05ID:+LVMEIXu
では雑談をしましょう
型Aを渡したときは型AAで、型Bを渡したときは型BBで
こういったことが簡単にしたければ、静的型の機能を使うのが一番手軽で自然
なぜなら構文レベルでサポートされてるから
(C++で言うところのテンプレートとか)
なのでRubyに静的型を導入するのが手っ取り早い

結果的にはうまくいかなかったんですが、TypeAnnotationをつけて
頑張ろうっていうのを余暇でやっているらしく
Ruby 3で導入しようとしている型システムは型推論だけでどうにかしようという
アプローチとは別のアプローチ
2010年代のプログラミング言語は型ありなのが当たり前になってきているので
Rubyはだいぶ置いてけぼり感(笑)があります
ですので、コミュニティ内での危機感も高いと思います
2017/11/11(土) 23:03:47.07ID:JLG7hn9J
それは雑談ではなくて荒らし
825デフォルトの名無しさん
垢版 |
2017/11/12(日) 00:27:53.41ID:WkrbFi3G
雑談にみせかけた荒らしをずっとやってる奴が何か文句言ってるけど、
初心者の質問スレで質問無視してスレ妨害し続けてたらみんなぶち切れるわな
もう半年以上になるんやで?
2017/11/12(日) 00:40:27.97ID:Ob05ibl6
質問なんてめったにないでしょ
827デフォルトの名無しさん
垢版 |
2017/11/12(日) 01:01:09.44ID:WkrbFi3G
そうやって質問のレスを無視して荒らすから、
みんなぶち切れてるんやで?

いい加減にしとけよ
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況