[過去ログ]
Ruby 初心者スレッド Part 60 [無断転載禁止]©2ch.net (1002レス)
Ruby 初心者スレッド Part 60 [無断転載禁止]©2ch.net http://mevius.5ch.net/test/read.cgi/tech/1493398918/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
953: デフォルトの名無しさん [] 2017/08/24(木) 12:32:10.15 ID:5a7RKQDl >>952 意味不 http://mevius.5ch.net/test/read.cgi/tech/1493398918/953
954: デフォルトの名無しさん [sage] 2017/08/24(木) 14:28:41.04 ID:gfjynZsV >>948 静的型とか動的型とか全く関係ない >>945 マニュアルくらい読もうぜ Array#+ は self + other -> Array https://docs.ruby-lang.org/ja/2.4.0/method/Array/i/=2b.html pryでshow-doc, show-sourceすればすぐ分かる内容 show-source Array#+ >>951 言いたいことはわかるがArrayを派生したい場合だってある Rubyはそういうことを制限しない言語 そのかわりに相応の力量が求められる http://mevius.5ch.net/test/read.cgi/tech/1493398918/954
955: デフォルトの名無しさん [sage] 2017/08/24(木) 14:56:19.91 ID:gfjynZsV Arrayから直接派生させるよりも、 EnumerableやForwardable使うほうが普通だとは思うけどね http://mevius.5ch.net/test/read.cgi/tech/1493398918/955
956: デフォルトの名無しさん [sage] 2017/08/24(木) 15:12:33.89 ID:+u51O4Tc 結果収束的には「可能ではあるが極力行わないようになる」こと自体は間違いはない なんでもかんでもメソッドチェーンにしないのと似たような感覚 ただし(古い表現だが)足元を弾痕穴だらけにしないとわからない感覚なので、未経験者に最初から指示するようなものでもないな それはそれで「本当は何もできないやらないわかっていない」机上の人だろう http://mevius.5ch.net/test/read.cgi/tech/1493398918/956
957: デフォルトの名無しさん [sage] 2017/08/24(木) 15:38:18.44 ID:NrLz+nwx DSLに何言ってんだか Rubyの書きやすさ書き換えやすさは他の言語にない重要なポイントのひとつだろ http://mevius.5ch.net/test/read.cgi/tech/1493398918/957
958: デフォルトの名無しさん [sage] 2017/08/24(木) 16:33:57.27 ID:gfjynZsV >>956 Arrayを継承したいと考えた理由次第だろ モンキーパッチ、リファインメント、継承、コンポジション それぞれメリットデメリットあるんだから初心者であっても そのトレードオフが理解して自分で判断できるようにならないとダメだよね? 基本クラスであってもどういう方式を選ぶのがいいのかは状況次第だから 背景理由を無視して、一つの選択肢を採用したほうがいいっていうのはちょっとっ極端に感じるよ http://mevius.5ch.net/test/read.cgi/tech/1493398918/958
959: デフォルトの名無しさん [] 2017/08/24(木) 20:44:43.22 ID:tqCPVr7b0 🐒 http://mevius.5ch.net/test/read.cgi/tech/1493398918/959
960: デフォルトの名無しさん [sage] 2017/08/24(木) 20:49:02.11 ID:tqCPVr7b >>954 仮にArrayを継承させたとして 何かのメソッドで思っていた型と違う型が返ってきたとして 静的型ならコンパイルエラーになって即気づける可能性が高いよね せっかく>>945がRubyが動的型のせいで > 長い間気づかずどつぼにハマッてたのを思いだした って告白してくれてるのに あるメソッドが、どのような仕様になってるかなんて そんなものはどのような仕様にでも実装できてしまうわけで (そう書けばそう動く、というだけ) 大事なのは、勘違いしたとき、間違ったときに、直ぐに気づけるかどうか だからArrayを継承すべきじゃないとかってのは話の本質じゃなくて 長い間気づかずドツボにハマってたのは何故かって部分なんだよ http://mevius.5ch.net/test/read.cgi/tech/1493398918/960
961: デフォルトの名無しさん [sage] 2017/08/24(木) 20:50:35.58 ID:tqCPVr7b 俺みたいなののほうがマトモなこと言ってるのがもう不思議なぐらいだろ? http://mevius.5ch.net/test/read.cgi/tech/1493398918/961
962: デフォルトの名無しさん [sage] 2017/08/24(木) 20:50:57.98 ID:tqCPVr7b それぐらいダメってことなんだよ、言語もコミュニティーも http://mevius.5ch.net/test/read.cgi/tech/1493398918/962
963: デフォルトの名無しさん [sage] 2017/08/24(木) 21:04:10.31 ID:sQWhHmgZ はいはいNGNG http://mevius.5ch.net/test/read.cgi/tech/1493398918/963
964: デフォルトの名無しさん [sage] 2017/08/24(木) 21:37:49.84 ID:gfjynZsV >>960 言語を使う側の能力の問題を 全部言語のせいにしちゃだめだよ var result = myArray1 + myArray2 ↑みたいに型推論使ってたら似たような事起きるだろ それは型推論自体がダメだからなのか? 型推論使用禁止にする? 使う道具のメリットデメリットをちゃんと理解して使いこなせてないからだろ 静的型にメリットがあるのはわかるが結局それはトレードオフなんだよ 何を選択するかの問題 http://mevius.5ch.net/test/read.cgi/tech/1493398918/964
965: デフォルトの名無しさん [sage] 2017/08/24(木) 21:46:32.32 ID:tqCPVr7b その場合でもresultをどこかに渡したり 継承で拡張したメソッドを使ったり 実用的なことをしようとした瞬間にコンパイルエラーになる お前はそのresultを何も使わずにそのまま捨てるのか? 結局、現実的な部分が全くないんだよね 机上の空論、それがRuby http://mevius.5ch.net/test/read.cgi/tech/1493398918/965
966: デフォルトの名無しさん [sage] 2017/08/24(木) 21:51:04.51 ID:tqCPVr7b しかも俺は >気づける可能性が高いよね とも書いてるわけで 現実的にはどこかの段階でコンパイルエラーになる可能性が高い、と http://mevius.5ch.net/test/read.cgi/tech/1493398918/966
967: デフォルトの名無しさん [] 2017/08/24(木) 21:55:21.82 ID:Z79NM4TL スレッドの進行を妨害するのは止めてください みんなが迷惑を被っています http://mevius.5ch.net/test/read.cgi/tech/1493398918/967
968: デフォルトの名無しさん [sage] 2017/08/24(木) 21:56:03.09 ID:yIhxd10m コンパイルが通ってもその後テストを走らせることになるけどな http://mevius.5ch.net/test/read.cgi/tech/1493398918/968
969: デフォルトの名無しさん [sage] 2017/08/24(木) 22:02:02.88 ID:gfjynZsV >>965 オーバーライドしたメソッド呼び出してもコンパイルエラーにならないだろ 静的型でも同じこと十分起こりえるよ 運良くコンパイルエラーで拾えるケースだけ上げて 静的型使うべきなんていう主張はナンセンス 力量が低いやつは静的型選んだほうがいいよっていうアドバイスなら まだ理解できるけどね http://mevius.5ch.net/test/read.cgi/tech/1493398918/969
970: デフォルトの名無しさん [] 2017/08/24(木) 22:05:10.57 ID:Z79NM4TL 再三にわたり伝えましたが、もう一度 スレッドの進行を妨害するのは止めてください みんなが迷惑を被っています http://mevius.5ch.net/test/read.cgi/tech/1493398918/970
971: デフォルトの名無しさん [sage] 2017/08/24(木) 22:10:19.62 ID:tqCPVr7b 起こりえるが、可能性は低いわけだ 運良くコンパイルエラーで拾える、というより 運悪くコンパイルエラーで拾えないケースもありうる、ということ 運が良くないとコンパイルエラーで拾えないんなら 静的型言語はこんなに普及してないし、もてはやされてもない 現実が全く見えていないんだね http://mevius.5ch.net/test/read.cgi/tech/1493398918/971
972: デフォルトの名無しさん [sage] 2017/08/24(木) 22:10:38.73 ID:kEm5qs8H >>967 LLスレで相手にされなくなったからな 隔離スレの自覚持って欲しいもんだ http://mevius.5ch.net/test/read.cgi/tech/1493398918/972
973: デフォルトの名無しさん [sage] 2017/08/24(木) 22:13:45.33 ID:gfjynZsV >>970 「だから動的型はダメなんだ」とか思っちゃう初心者が出ないように きちんと反論しとくことは重要じゃねーの? >再三にわたり伝えましたが、 って>>967の1回だけじゃんww http://mevius.5ch.net/test/read.cgi/tech/1493398918/973
974: デフォルトの名無しさん [sage] 2017/08/24(木) 22:18:05.33 ID:lIOBscyk >>973 私たちにとってはなんら重要ではありません お帰りください http://mevius.5ch.net/test/read.cgi/tech/1493398918/974
975: デフォルトの名無しさん [sage] 2017/08/24(木) 22:19:22.21 ID:gfjynZsV >>971 型推論禁止すれば運悪くコンパイルエラーで拾えないケースも潰せるね http://mevius.5ch.net/test/read.cgi/tech/1493398918/975
976: デフォルトの名無しさん [sage] 2017/08/24(木) 22:20:59.16 ID:gfjynZsV >>974 なんでお前が勝手に決めてんの? http://mevius.5ch.net/test/read.cgi/tech/1493398918/976
977: デフォルトの名無しさん [sage] 2017/08/24(木) 22:23:28.89 ID:lIOBscyk >>976 あなたにはもうそれを判断できるだけの客観的知性が残っていないからです http://mevius.5ch.net/test/read.cgi/tech/1493398918/977
978: デフォルトの名無しさん [sage] 2017/08/24(木) 22:26:09.58 ID:yIhxd10m >>969 力量が低いだけに留まらず、現実逃避する頭の悪い知ったかぶりのお馬鹿さんなら あなたが話しかけてるそこにいますよ http://mevius.5ch.net/test/read.cgi/tech/1493398918/978
979: デフォルトの名無しさん [sage] 2017/08/24(木) 22:39:55.72 ID:tqCPVr7b 俺が言うのもなんだけど ID:Z79NM4TLやID:lIOBscykのが正解だと思うよ 「そんなことは初めから分かってて承知の上で使っているのだから 放っておいてくれ」 って所でしょ 欠点を認められずに使ってる方が異常 http://mevius.5ch.net/test/read.cgi/tech/1493398918/979
980: デフォルトの名無しさん [] 2017/08/24(木) 23:09:32.94 ID:Z79NM4TL スレッドの進行を妨害するのは止めてください みんなが迷惑を被っています スレッドの趣旨が分からないなら1を読んで下さい これ以上妨害を続ける場合は、過去の妨害行為時のログを元に弁護士との相談の上、 措置を取ります http://mevius.5ch.net/test/read.cgi/tech/1493398918/980
981: デフォルトの名無しさん [sage] 2017/08/24(木) 23:11:07.39 ID:h4EzWrOx 自分が何をしてるか全く理解できないんだろうな レスがつくことそのものに興奮してここがどこかも判断できていない 貴方達そのものを我々は必要としていない 貴方達が書き込んだそのものを私たちは歓迎しない 我々私たちの望みはひとつだけ、二度とここに来るな http://mevius.5ch.net/test/read.cgi/tech/1493398918/981
982: デフォルトの名無しさん [sage] 2017/08/24(木) 23:27:57.47 ID:tqCPVr7b 何か映画とかで、スラム街とか田舎町の住人に言われそうなセリフ http://mevius.5ch.net/test/read.cgi/tech/1493398918/982
983: デフォルトの名無しさん [] 2017/08/24(木) 23:38:06.01 ID:Z79NM4TL スレッドの進行を妨害するのは止めてください みんなが迷惑を被っています スレッドの趣旨が分からないなら1を読んで下さい これ以上妨害を続ける場合は、過去の妨害行為時のログを元に弁護士との相談の上、 措置を取ります http://mevius.5ch.net/test/read.cgi/tech/1493398918/983
984: デフォルトの名無しさん [] 2017/08/24(木) 23:39:36.79 ID:c/yv4qcw 過去のgem配布サイト復活しないかな http://mevius.5ch.net/test/read.cgi/tech/1493398918/984
985: デフォルトの名無しさん [sage] 2017/08/25(金) 05:58:03.30 ID:ZShOFEd5 「Effective Ruby」項目21にも書いてある コアクラスを継承するな。委譲・包含(Forwardable)を使え。 is-a よりも、has-a を使え たいていの言語では、String型なども継承できない。 final 指定されてる 初心者は、コレクションを継承したがるが、アンチパターン。 継承すれば、バグるだけ たいていの「Effective 何々」とか、デザインパターンの本にも、書いてある http://mevius.5ch.net/test/read.cgi/tech/1493398918/985
986: デフォルトの名無しさん [sage] 2017/08/25(金) 06:40:42.06 ID:aRYPlL4U >>981 例の人は自分が来るせいで誰も居なくなったんだってわかってないからな コミュニティは衰退したのではなく特定の人物の書き込みにより破壊されたのだ http://mevius.5ch.net/test/read.cgi/tech/1493398918/986
987: デフォルトの名無しさん [sage] 2017/08/25(金) 07:08:25.93 ID:w/d6Mddl Arrayのような多くの人が慣れ親しんだインタフェースを提供したいと考えてるんだが、 それ自体が慣れで運用してしまうから問題、ということなのか? 極端な話myaddとかにした方がいいのか http://mevius.5ch.net/test/read.cgi/tech/1493398918/987
988: デフォルトの名無しさん [sage] 2017/08/25(金) 07:24:38.55 ID:w/d6Mddl >>985 アンチパターン名は? http://mevius.5ch.net/test/read.cgi/tech/1493398918/988
989: デフォルトの名無しさん [sage] 2017/08/25(金) 10:40:58.89 ID:ZShOFEd5 JavaScript の、prototype.js なども、コアクラスを上書きして、挙動が変わるから、 皆から、うっとうしがられてる とにかく、バグるから、個人で、コアクラスを修正してはいけない やってもいいのは、Date クラスに、便利な関数を追加したり、 Rails とか、使用説明書・メンテナンスもしっかりしている、 有名なフレームワークだけ http://mevius.5ch.net/test/read.cgi/tech/1493398918/989
990: デフォルトの名無しさん [sage] 2017/08/25(金) 11:07:17.19 ID:8cxOpMBd ↑こいつはRuby畑の人間じゃないな http://mevius.5ch.net/test/read.cgi/tech/1493398918/990
991: デフォルトの名無しさん [] 2017/08/25(金) 11:27:54.95 ID:BwHFndLq >>985 項目21の根拠はなんでしょう? 1. 継承を使うとなるとSuper Classの詳細を知る必要がある。 2. 移譲なら使いたい機能をつまみ食いすれば良いので楽。 こう言う事でしょうかねぇ? http://mevius.5ch.net/test/read.cgi/tech/1493398918/991
992: 985 [sage] 2017/08/25(金) 12:26:40.27 ID:ZShOFEd5 例えば、親のArray から、子のDerivedArray を派生させて、 reverse を呼んでも、子クラスを返さず、親クラスを返してしまう 全メソッドを、派生クラスに対応させるのが、無理だから 委譲で、Forwardable モジュールの、def_delegators で、 使うメソッドだけ、宣言する方が簡単 漏れも、10言語以上、数十冊の本を読んでるけど、 配列など、コアクラスを継承した、ソースコードは見た事がないし、 たいていの言語で、継承よりも委譲を使うように書いてある そういう論文も多い http://mevius.5ch.net/test/read.cgi/tech/1493398918/992
993: デフォルトの名無しさん [] 2017/08/25(金) 12:36:03.24 ID:BwHFndLq >>992 ところで、論文はどのJournalから? http://mevius.5ch.net/test/read.cgi/tech/1493398918/993
994: 985 [sage] 2017/08/25(金) 13:01:27.87 ID:ZShOFEd5 「c++ 継承 委譲」で検索! ほとんどの論文が、継承よりも委譲 http://mevius.5ch.net/test/read.cgi/tech/1493398918/994
995: デフォルトの名無しさん [sage] 2017/08/25(金) 15:26:58.12 ID:W3qddKKH クロージャーつかおう http://mevius.5ch.net/test/read.cgi/tech/1493398918/995
996: デフォルトの名無しさん [] 2017/08/25(金) 15:28:23.63 ID:sLUvaIRs a=[[1,2],3,4,5,[6,7],8,[9,10],[11,12],[13,14]] b=[[1,3,4,5,6,8,9,11,13],[2,3,4,5,7,8,10,12,14]] aの配列からbの配列を作り出すにはどの様にしたらいいでしょう? http://mevius.5ch.net/test/read.cgi/tech/1493398918/996
997: デフォルトの名無しさん [] 2017/08/25(金) 15:32:56.84 ID:BwHFndLq >>996 >a=[[1,2],3,4,5,[6,7],8,[9,10],[11,12],[13,14]] まずは、 a=[[1,2],[3, 3],[4,4],[5,5],[6,7],8,[9,10],[11,12],[13,14]] を作る。 http://mevius.5ch.net/test/read.cgi/tech/1493398918/997
998: デフォルトの名無しさん [] 2017/08/25(金) 15:36:12.98 ID:BwHFndLq ar = [] a.each do |e| if !e.instance_of?(Array) then ar << [e, e] else ar << e end まずはこんな感じ! http://mevius.5ch.net/test/read.cgi/tech/1493398918/998
999: デフォルトの名無しさん [sage] 2017/08/25(金) 15:50:59.00 ID:4MOWRfGQ >>996 b = a.each_with_object([[],[]]) {|(x, y), acc| acc[0] << x; acc[1] << (y || x) } http://mevius.5ch.net/test/read.cgi/tech/1493398918/999
1000: デフォルトの名無しさん [] 2017/08/25(金) 16:00:09.35 ID:HsL9LVKJ 次スレ Ruby 初心者スレッド Part 61 https://mevius.2ch.net/test/read.cgi/tech/1503644351/ http://mevius.5ch.net/test/read.cgi/tech/1493398918/1000
1001: 1001 [] Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。 life time: 118日 13時間 58分 11秒 http://mevius.5ch.net/test/read.cgi/tech/1493398918/1001
1002: 1002 [] Over 1000 Thread 2ちゃんねるの運営はプレミアム会員の皆さまに支えられています。 運営にご協力お願いいたします。 ─────────────────── 《プレミアム会員の主な特典》 ★ 2ちゃんねる専用ブラウザからの広告除去 ★ 2ちゃんねるの過去ログを取得 ★ 書き込み規制の緩和 ─────────────────── 会員登録には個人情報は一切必要ありません。 月300円から匿名でご購入いただけます。 ▼ プレミアム会員登録はこちら ▼ https://premium.2ch.net/ ▼ 浪人ログインはこちら ▼ https://login.2ch.net/login.php http://mevius.5ch.net/test/read.cgi/tech/1493398918/1002
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.256s*