X



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

レス数が950を超えています。1000を超えると書き込みができなくなります。
0001デフォルトの名無しさん
垢版 |
2017/04/29(土) 02:01:58.34ID:urVXnFrH
プログラミング言語Rubyについての、初心者向けスレです。質問・要望・雑談などどうぞ。
質問するときは、OSやRubyのバージョン、エラーメッセージを書いたほうがいいお
Ruby on RailsについてはWEBプログラミング板で

前スレ
Ruby 初心者スレッド Part 59
http://echo.2ch.net/test/read.cgi/tech/1475394638/

るりまサーチ (リファレンス検索)
http://rurema.clear-code.com/

Rubyist Magazine - るびま
http://jp.rubyist.net/magazine/

逆引きRuby
http://www.namaraii.com/rubytips/
0851デフォルトの名無しさん
垢版 |
2017/08/09(水) 01:14:55.85ID:v3IDtueA
>>848
俺が思ってる事に勝手に限定してんじゃねえよ
Perlが標榜するものの一部だろうが
それに人間性に問題があるのか知性に問題があるのか知らねえけど、
Perl6ならオブジェクト指向プログラミングが可能だし変数を型で縛れるぞ
0852デフォルトの名無しさん
垢版 |
2017/08/09(水) 01:19:24.43ID:v3IDtueA
>>850
俺は一度Ruby-1.6シリーズを触ったけどその時は合わなくてPerlに行った
PerlでCGIゲームを書いたけど結局1年半でRubyに流れ着いた
その時はRuby-1.8.1か2になってたかな
それからは個人利用だとRubyが中心になってる
決定的となったのはRuby Hacking Guideの存在だったな
Web版で済ませましたスンマセン
0853デフォルトの名無しさん
垢版 |
2017/08/09(水) 08:17:40.99ID:/WbeABcG
Rubyが動的言語なのは必然
何も分かってない

影響を受けたPerl、Lisp、Smalltalkが動的言語
利用形態が近いLAMPのP言語のPerl、Python、PHPが動的言語
0854デフォルトの名無しさん
垢版 |
2017/08/09(水) 09:35:00.76ID:ocU/hJiZ
>>852
>Ruby Hacking Guide
これって、今でもWeb版が閲覧できね。
知らんかった。
0855デフォルトの名無しさん
垢版 |
2017/08/09(水) 18:40:53.88ID:C8BEXwt3
Win7(32bit)上のRubyInstaller2からwin32oleを使ってデータベースに接続しようとしてるんだけど
ODBCデータソースのOpenで例外が出てしまう。
エラーメッセージは↓
システムエラーコード126 指定されたモジュールが見つかりません (〜)
カッコ内はODBCドライバのフルパスが書かれているけどファイルは間違いなくそこにある。
試しにActiveScriptRubyでやってみたらうまく繋がる。
これってどんな原因が考えられるでしょうか?
0857デフォルトの名無しさん
垢版 |
2017/08/09(水) 21:47:11.29ID:v3IDtueA
>>855
不確かな答えになるけど
ODBCドライバが依存しているライブラリが読み込めないから?
環境変数のPATHを確認してみると違いがあるのかな
ruby -e 'p ENV["PATH"]'

あとはActionScriptRubyのruby.exeがあるディレクトリに移動してRubyInstaller2のruby.exeを起動してみるとか
0860デフォルトの名無しさん
垢版 |
2017/08/10(木) 03:49:56.14ID:HGihyxQL
今現在も苦しんでる途中といってよいんじゃないかな
初めから静的型を導入してれば何でもなかったのにな
Pythonのこの様子をみてmarzは
Rubyに静的型を入れるのを止めたわけで
どのみち行くも留まるも地獄
初めから静的型にしておくのが正解だったわけだな

動的型っていったい何のために有るんだろうな
開発速度も実行速度も遅いんじゃ意味わからないよな
処理系を用意するのが楽ってこと以外はメリットが見当たらない
0861デフォルトの名無しさん
垢版 |
2017/08/10(木) 04:03:30.21ID:HGihyxQL
JSも非常に苦労が絶えないよね
まず使いにくいから静的型のTypeScriptとか作られたり
ブラウザのJSエンジンも速度上げるためにキチガイじみたことやってるよね
なしてこんなことにって感じ
動的型って世の中を混乱させて無駄なエネルギーを使わすために有るんかね
0863デフォルトの名無しさん
垢版 |
2017/08/10(木) 06:58:53.68ID:1rmPYDcN
スレが伸びてると思ったらまた例の粘着荒しか
こんなのを生み出したこいつの親に製造責任とって欲しいよ、ホント

win32oleの話題が出てるけど、
ファイルダイアログ扱うCOMってOSのメインバージョン、xpとかvistaとか7とか違っていても共通でいけるの?
それともメインバージョン毎に異なるCOM使わないといけないの?
0864デフォルトの名無しさん
垢版 |
2017/08/10(木) 07:05:51.34ID:1rmPYDcN
メインじゃなくてメジャーだったな
0866デフォルトの名無しさん
垢版 |
2017/08/10(木) 09:29:44.68ID:HGihyxQL
>>865
TypeScriptって凄い名前でしょ
なんたって「Type」Scriptだもんな
言いたいことが名前に表れてる
何に対するアンチテーゼなのか明確
これが今後の常識
0867デフォルトの名無しさん
垢版 |
2017/08/10(木) 09:36:29.21ID:stL+geP9
>>855
"mfc71.dll"、"msvcp71.dll"、"msvcr71.dll"の3つのファイルを入手してOSのシステムディレクトリ"c:¥windows¥system32"に保存すればよい。
0868デフォルトの名無しさん
垢版 |
2017/08/10(木) 09:40:32.90ID:stL+geP9
VC++ 2010(32bit版)、VC++ 2012(32bit版、64bit版)、VC++2013(32bit版、64bit版)の計5つのランタイムの内、1つをinstallすれば解決できるかも。

まあ、この手のエラーは、ランタイム地獄とか、DLL Hellとかで検索!
0869デフォルトの名無しさん
垢版 |
2017/08/11(金) 16:38:50.24ID:XzR2MkFB
プログラム初心者がrubyを1から学ぶ上でおすすめの本とおすすめのサイト・ブログを教えてほしいです。
ちなみにルビィの冒険はすでに持ってます。
というかルビィの冒険を読んで興味持ちました。
0870デフォルトの名無しさん
垢版 |
2017/08/11(金) 17:43:52.20ID:rRCrIO51
ルビィの冒険

はじめてのRuby

パーフェクトRuby

Rubyベストプラクティス
EffectiveRuby
メタプログラミングRuby1版or2版
Rubyによるデザインパターン

リファクタリングRubyエディション
Rubyのしくみ。

ウェブアプリ方面
パーフェクトRubyonRails
RubyonRails5アプリケーション・プログラミング
Docker教科書
JapaScript本格入門第二版
入門Git
GitHub実践入門
SQL 第2版 ゼロからはじめるデータベース操作
達人に学ぶ SQL徹底指南書
SQLアンチパターン
0872デフォルトの名無しさん
垢版 |
2017/08/11(金) 18:27:13.22ID:XzR2MkFB
>>870
沢山ありがとうございます!
ちなみに発売日が古い本でも問題はないでしょうか?
昔と今との変更点とかで
0874デフォルトの名無しさん
垢版 |
2017/08/11(金) 20:51:31.14ID:rRCrIO51
>>872
基礎的なことを学んでいくなら問題はない、

しかしJavaScript等は最近大幅なテコ入れがあった。
だから不安なら、ここ最近1年以内の本を買ったほうがいい。

またそもそも基礎的な事、基本的な事なら10年以内の本でも
名著であり続ける。だがその数は少ない。
0876デフォルトの名無しさん
垢版 |
2017/08/12(土) 03:50:23.72ID:oUZskOr3
Rubyの言語仕様をある程度覚えたら、
次にリファクタリングRubyエディションを読むと良い
コードの最も筋の良い書き進め方を会得できるし、一般的なプログラミング作法の本質を学べる
コードをバリバリ書けるようになるし、Rubyを便利に使いこなす理解も深まる
0877デフォルトの名無しさん
垢版 |
2017/08/12(土) 05:52:30.53ID:w+TtGEkw
ary = ["a", "b"]

ary[0] = ary[0] + "x"
puts ary[0] #=> ax

ary[1] =+ "y"
puts ary[1] #=> y

上なら、文字列が連結されて、
下なら、b が消えて、上書きになるのは、なぜ?

文字列の、=+ 演算子は意味が異なるの?
0878877
垢版 |
2017/08/12(土) 06:04:00.61ID:w+TtGEkw
ary = ["a", "b"]

ary[0] = ary[0] + "x"

# ary[1] =+ "y"
ary[1] += "y"

puts ary

表示
ax
by

自己レス
+= だったか。
=+ と逆に書いていたw

でも、コンパイルエラーが出ない
0879デフォルトの名無しさん
垢版 |
2017/08/12(土) 06:10:46.47ID:YomJun0W
よっぽど仮想学習的な環境でない限りNoMethodErrorが出るよ
irb> a = %w(a b)
irb> a[1] =+ "y"
NoMethodError: undefined method `+@' for "y":String
0881877
垢版 |
2017/08/12(土) 08:33:50.03ID:w+TtGEkw
paiza.IO で実行したけど、コンパイルエラーにならなかった
0882デフォルトの名無しさん
垢版 |
2017/08/12(土) 08:47:10.82ID:4WztSMRy
>>881
paizaは2.4系だから。あと細かいけど、インタプリタだからコンパイルエラーと呼ぶのは違う気がする
0884デフォルトの名無しさん
垢版 |
2017/08/12(土) 11:53:23.96ID:CSnAjTr3
>>882
言いたいことはわかるが、コンパイルエラーでも問題ないと思う。
実行前の文法エラーなのであれば、あきらかに事前のコンパイル段階のエラーなんだから。
0885デフォルトの名無しさん
垢版 |
2017/08/12(土) 11:59:10.11ID:CSnAjTr3
あ、>>884に追記。
インタプリタどうこうの点についてのつもりなので、念のため。
881がコンパイルエラーといってるのはおかしいと思うよ。
0887デフォルトの名無しさん
垢版 |
2017/08/12(土) 12:33:20.77ID:4WztSMRy
>>883
+@, -@の追加は別にいいけど3.0以降のデフォルトimmutable化はさすがに勘弁して欲しいなあ、Railsの声が強すぎる……

>>884
RubyのNoMethodError(というかException全般)は実行を試みて初めて出されるから実行時のエラーだよ。(ランタイムエラーと呼びたいがRuntimeErrorクラスと混同しかねないので悩ましい)
endが足りないとかのSyntax Errorとは別物だと思うけど。こっちは実行前の構文解析。
0888デフォルトの名無しさん
垢版 |
2017/08/12(土) 13:33:01.18ID:K4TPp3Ad
>3.0以降のデフォルトimmutable化
定数は自動的にfreezeするくらいの対応で良かったな
0893デフォルトの名無しさん
垢版 |
2017/08/12(土) 14:25:04.02ID:zLZ79VVH
Railsさんを追い出したら島根のお役所へのPRに使えるようなRuby採用事例がほとんど無くなって金貰えなくなるからね
Chefみたいなインフラ系の事例を出されても役所の人「ハァ?」だろうし
0894デフォルトの名無しさん
垢版 |
2017/08/12(土) 14:51:06.74ID:4WztSMRy
RoR上でのみデフォルトでimmutable、ってのも立派な"Rail"じゃないのかなあ。
どうせマジックコメントで切り替えられるようにするんだったらわざわざRuby全体のデフォルトを変えんでもいいでしょうに……
0895デフォルトの名無しさん
垢版 |
2017/08/12(土) 15:19:12.43ID:K4TPp3Ad
>>892
よくねーよ

Rubyで作れるのは
Webアプリだけじゃねーから

Railsみたいなフレームワークを
言語仕様にしちゃうと窮屈になる
0896デフォルトの名無しさん
垢版 |
2017/08/12(土) 15:26:53.07ID:zLZ79VVH
>>895
他に何に使われていようが、金を産んでるのもMRIにコミットしてる開発者が作ってるのも事実上Webアプリだけだから
他は無視しても全く問題ないのよ、残念なことに
0897デフォルトの名無しさん
垢版 |
2017/08/12(土) 15:28:23.95ID:K4TPp3Ad
>>896
そんな発想だから
機械学習とかWeb以外の
ライブラリが充実してるPythonに
国際的に負けてしまう
0899デフォルトの名無しさん
垢版 |
2017/08/12(土) 23:34:01.47ID:QBhBJkcV
>>870
俺的今日のNo1、カキコ
0900デフォルトの名無しさん
垢版 |
2017/08/13(日) 00:56:22.58ID:SYaWjJhn
Rubyが、ドンドン、Elixir に近づいていく

>>887
そう言えば、「メタプログラミング Ruby」にも、
NoMethodError を上書きするな、って言う格言があった
0901デフォルトの名無しさん
垢版 |
2017/08/13(日) 01:10:49.40ID:PA7iDDOj
これも結局速度のために手動で変な最適化をプログラマに課してるだけのことだよな
こーゆーノリはC言語時代にはよくあったと思うけど
なんせ当時のCPUは今から考えるとものすごく遅かったからなぁ
だけど今時だとCPUも速いしコンパイラの最適化も凄いから
特に何も考えなくても十分に速いので、変な最適化に技巧を凝らすより
読みやすいコード書けってのが主流だよな
だけどRubyはメジャー言語より平気で50倍とか遅いし
コンパイラの最適化も糞なので手動で最適化するんだなwww

3.0GHzの最新CPUを使ってても50〜100MHzのCPU相当の速度になるし
加えてコンパイラの最適化も糞で手動で最適化とか
まるで20年ぐらい前の感じだな

動的型でプログラミングが楽になるはずが
静的な型チェックもなければ速度が遅くて手動で最適化とか
本当に動的型は素晴らしいですね
0902デフォルトの名無しさん
垢版 |
2017/08/13(日) 01:15:14.97ID:WE0t0sIJ
スクリプトで手間暇かけて凝ったアルゴリズムで計算量減らすより
C++でブルートフォースしちゃった方がてっとり早くて速かったりするのはよくある話
スクリプト向きのタスクか否かを感覚的に見抜けることは大切
0903デフォルトの名無しさん
垢版 |
2017/08/13(日) 01:20:36.73ID:PA7iDDOj
今もう2017年だよな
Rubyはこんな最適化のために
今更言語仕様を変えるだとか変えないとかで盛り上がってて
何なんだろうな
これから先もずっとこんな調子なのかね
元の実行速度が遅いから速くするための最適化のために言語仕様をどうのこうの

今はforループを自動で並列展開してマルチスレッドとかSIMDとかで
コンパイラに頑張ってもらって速度を稼ごうとか
そういうこと言ってる時代なのに
やってることがあまりにも原始的というかなんというか
技術的に何も面白くないし、触ってて本当に楽しいんだろうか?
よく考えられた静的型のシステムがあるわけでもないし
化石言語だな
ありとあらゆることをプログラマに丸投げ
0904デフォルトの名無しさん
垢版 |
2017/08/13(日) 01:31:38.50ID:PA7iDDOj
ありとあらゆることが悪い方に作用している様は本当にすごいよ
動的型のおかげでそもそも遅そうなのにろくに最適化もかからないから鈍足
遅すぎるのでプログラマが手動で最適化してください
加えて静的な型チェックもしないのでテストするなりなんなり
プログラマが頑張ってください
動的型って何なんだろうね
0905デフォルトの名無しさん
垢版 |
2017/08/13(日) 02:53:31.36ID:9GyPh5fY
専ブラを使っている人は次の正規表現をNGIDとして突っ込んでおきましょう
\b(ppLsekVC|qMkdrUOQ|IBgoqo2I|AOJFjP\+S|bC2KM4MS|Wy5AX0em|m8GLf68F|hEgnFYnk|HGihyxQL|PA7iDDOj)\b
0906デフォルトの名無しさん
垢版 |
2017/08/13(日) 04:14:05.84ID:SQfD9dn9
ワッチョイじゃないからあんまり意味ないんだよなぁ
1行読んで心のNGフィルターに突っ込んでるから問題ないけど
0907デフォルトの名無しさん
垢版 |
2017/08/13(日) 14:33:04.78ID:bHAx/aO4
ま〜た涌いてるのか
はよー親に製造責任とってもらえよ
0908デフォルトの名無しさん
垢版 |
2017/08/17(木) 15:09:10.89ID:ESEriUZI
趣味で作られた「オレ様の考える最強言語」にちょっと高望みしすぎじゃないの とか言っちゃダメかな
0909デフォルトの名無しさん
垢版 |
2017/08/17(木) 15:16:46.98ID:+kyvImyc
初心者スレで暴れまわって機能不全に陥れるとは
Rubyは完全に澱んでるな
Pythonコミュニティとすっかり差が開いてしまった

人気ランキング1位
Pythonは今のうちに習得すべき?『スラスラわかるPython』著者・岩崎さんとPyCon JP理事の寺田さんが語る:CodeZine(コードジン)
http://codezine.jp/article/detail/10329
0911デフォルトの名無しさん
垢版 |
2017/08/17(木) 20:41:32.26ID:ENaOxomf
コマンドライン引数が表示できません。
OSはwin10、rubyのバージョンは2.4.1-2-x64です。

コードはprint_arg_1.rbという名前で、
#!c:/ruby/bin/ruby
print ARGV[0]

コマンドプロンプトには
c:\ruby\samples>print_arg_1.rb A

と入れてみるのですが、何も(エラーも)表示されません。
Aと表示させるつもりなのですが・・・。
ちなみに、powershellに入力した場合はAと表示できます。
0916デフォルトの名無しさん
垢版 |
2017/08/17(木) 21:28:46.60ID:ENaOxomf
>>915

コードを
#!c:/ruby/bin/ruby
p ARGV[0]
と書き換えるということですか?

やってみたところ、nilとでました
0923デフォルトの名無しさん
垢版 |
2017/08/18(金) 01:34:08.78ID:0sQWyUaj
以下、そういうときの正確な状況を確認する方法。

次のコマンドラインを実行して、関連付けを確認。
assoc .rb

その出力結果を引数にしてftypeを実行して、実行されるコマンドラインを確認。
0924デフォルトの名無しさん
垢版 |
2017/08/18(金) 05:42:06.33ID:kayGF/0k
powershellで実行してるものと、コマンドプロンプトで実行してるものが別ファイルである可能性くらいしか無いのでは
0925デフォルトの名無しさん
垢版 |
2017/08/18(金) 09:35:17.44ID:dcEfP3Wf
rubyでOpenglいじってるけどコード書き換えやすくて楽しすぎ
他にも楽しそうなもの無い?
0926デフォルトの名無しさん
垢版 |
2017/08/18(金) 10:03:46.81ID:5/NGjmsA
Sequel4でSQL server上の日本語てんこ盛りのテーブルに接続できるか試しているんですが
日本語以前にシンボルを使ったアクセスだと全部upcaseされているっぽくて
大文字小文字混在の識別名?が指定できなくて詰んでます。

これどこで設定すればいいんでしょうか?
0927デフォルトの名無しさん
垢版 |
2017/08/18(金) 11:21:40.62ID:MkY1nhvU
.\print_arg_1.rb A
.\ は、カレントフォルダだから、相対パス付き

c:\ で始まっていたら、絶対パス

print_arg_1.rb A
これは、パスではない。
print_arg_1.rb というコマンドになるから、そんなコマンドは存在しない

基本は、実行したいスクリプトファイルのあるフォルダへ、
cd で移動して、そのフォルダで、.\ を付けて、
.\print_arg_1.rb A
とする

#!c:/ruby/bin/ruby
Windows でも、シバンが使えるのか。
パス区切り文字は、/ でも認識できるのか
0931デフォルトの名無しさん
垢版 |
2017/08/19(土) 00:44:19.65ID:drv+oAyy
rbのファイルタイプを常に
ruby.exeで開くように設定したんだろう
そのときにたぶん"%1"ぐらいは設定されてるのだろうけど
0932デフォルトの名無しさん
垢版 |
2017/08/19(土) 01:00:58.21ID:WAJdahb2
pythonのインストーラーが尋ねる2通りの選択
pathに設定するかwindowsシステムにアプリケーションを登録(推奨)みたいなやつがあって謎だったが
今意味が分かった
0933デフォルトの名無しさん
垢版 |
2017/08/19(土) 12:53:30.00ID:9KU7ntuJ
環境変数PATH をいじくったら,

すべてのコマンドの起動に影響するから、大変
0934デフォルトの名無しさん
垢版 |
2017/08/19(土) 13:10:45.58ID:s/Tmv27m
WindowsでのRubyプログラムで
一番大変なのは環境構築だからな
環境変数がどうこうはよく調べておくように
0935デフォルトの名無しさん
垢版 |
2017/08/19(土) 13:47:01.70ID:9KU7ntuJ
pyenv, rbenv など、仮想環境を使うと、
環境変数PATH の先頭に追加するから、極めて危険

〜python2
〜python3;〜python2

例えば、python コマンドの実行ファイルが、
〜python2 ではなく、先に、〜python3 のパスで見つかるから

そのコマンドが、どの実行ファイルを起動しているのか、くれぐれも注意せよ
0936デフォルトの名無しさん
垢版 |
2017/08/19(土) 15:34:54.77ID:vQyZjPpv
ruby って -K で文字コード指定して実行出来るみたいだけど
バージョン指定して実行するようなオプションってあったっけ
0938デフォルトの名無しさん
垢版 |
2017/08/20(日) 20:41:41.88ID:UK9Z84hT
version指定というか、ruby処理系を指定しての実行なら可能なはず
上ででてきた#!c:/ruby/bin/rubyを応用して、
version毎にディレクトリ作ってパス指定
0940926
垢版 |
2017/08/21(月) 10:32:12.71ID:b3IxGKL2
突き止めました
エクステンションを導入して変換を無効化すればよかったです。

DB.extension :identifier_mangling
DB.identifier_input_method = nil
DB.identifier_output_method = nil
0941926
垢版 |
2017/08/21(月) 15:46:43.43ID:b3IxGKL2
間抜けなことしてました。
ODBC使うのにsequelが自前でやってると思ったらruby-odbc使ってた。
だからodbc-utf8を先にrequireしないとutf8が通らなくて日本語以前だった。
ほかにもfreeTDSでutf-8だと指定効かないとか気がつかなかった。

bundlerが依存関係全部処理してたから気がつかなかった…
0942デフォルトの名無しさん
垢版 |
2017/08/21(月) 19:28:02.56ID:QB5Pvnbo
おつかれい
0943926
垢版 |
2017/08/21(月) 21:57:25.45ID:b3IxGKL2
ありがと。

さらに問題発覚。というかsequelの手抜きなんだけど
likeを発行するときにsql server向けの互換レイヤはLatin1_General_*を強制的に付け足す。
ハードコードされてて切り替えできない。とりあえずlib/sequel/adapters/shared/mssql.rbにパッチ当てたけど
gitみてもこの辺対処されて無いっぽい。5になれば期待できそうな感じはあるけど。

あーやっとやっつけ集計バッチをこれで置換できるかもしれん
あとはsinatraとhamlとsassか…
0944926
垢版 |
2017/08/22(火) 11:19:06.95ID:BnyIu5Np
いろいろいじった結果
FreeBSD 11.1R
ruby 2.4.0
sequel 4.48.0
ruby-odbc 0.99998
unixODBC 2.3.4
freeTDS 1.00.131,1
Microsoft SQL Server 2008 R2
の組み合わせで日本語てんこ盛りのデータベースを読むは問題なさそう。作ったり書いたりはこれからだけど基本集計だけだし。
結局utf8周りの設定は一切合切消してもrequire 'odbc-utf8'があれば普通に日本語通ってしまった。
数年前に試したときにうまくいかなかったのも多分これのせいだったんだろう。
0945デフォルトの名無しさん
垢版 |
2017/08/23(水) 08:24:54.57ID:UQYl7YfQ
そういば、1.8かどうか忘れたけど、
Arrayの派生クラス同士に+をつかって、新しい派生クラスのインスタンス出力しようとしたら、
派生元のArrayのインスタンスが出力されることがあったな

長い間気づかずどつぼにハマッてたのを思いだした
0946デフォルトの名無しさん
垢版 |
2017/08/23(水) 08:33:32.73ID:UQYl7YfQ
Arrayの派生クラス同士に

Arrayの派生クラスのインスタンス同士に
0948デフォルトの名無しさん
垢版 |
2017/08/23(水) 19:49:57.47ID:XbrvJbom
>たいがいの言語でそうなっちゃうでしょ。

そんなことないよ
静的型だったならどこかでコンパイルエラーになって気づけた可能性もあるよ
0949デフォルトの名無しさん
垢版 |
2017/08/23(水) 20:17:43.31ID:UQYl7YfQ
まーた涌きやがったかコイツ

まぁRubyだからこそ直接Arrayクラスのメソッドをself.classをつかったコードに書きえて、
派生先のクラスでも問題なく動かすようにできるわけだけど
当時もそうやって楽に対応できたし、今のverなら書き換える必要も無く対応してるんじゃないか?
確認してないけど
0950デフォルトの名無しさん
垢版 |
2017/08/24(木) 04:24:49.42ID:tqCPVr7b
このような実例があると
動的型にすると無駄な時間が増えることが
初心者にも分かりやすくてよいですね
0951デフォルトの名無しさん
垢版 |
2017/08/24(木) 07:03:14.83ID:gO5USKuu
普通、配列のような基本的なクラスからは、クラスを派生させない

継承を使うのは、自分で作ったクラスか、
継承されることが前提のクラスだけ

一般的には、継承より包含を使う

包含の方が、継承よりも柔軟だから、
配列のような基本的なクラスには、合っている
レス数が950を超えています。1000を超えると書き込みができなくなります。

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