プログラミング言語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/
Ruby 初心者スレッド Part 60 [無断転載禁止]©2ch.net
レス数が1000を超えています。これ以上書き込みはできません。
2017/04/29(土) 02:01:58.34ID:urVXnFrH
918デフォルトの名無しさん
2017/08/17(木) 22:00:16.19ID:ENaOxomf919デフォルトの名無しさん
2017/08/17(木) 22:07:40.53ID:eXIxbYLq 謎すぎてわからん
920デフォルトの名無しさん
2017/08/17(木) 22:18:52.38ID:CKP1LJFf コマンドプロンプトからwhere ruby
多分rubyがバッチファイル
多分rubyがバッチファイル
921デフォルトの名無しさん
2017/08/17(木) 23:48:20.77ID:+Rt8Y1Dv バッチファイルだとしても引数渡さないとかアホやろ
922デフォルトの名無しさん
2017/08/18(金) 00:04:08.29ID:pRy4OxRt windowsの関連付けのバグじゃないのかな
923デフォルトの名無しさん
2017/08/18(金) 01:34:08.78ID:0sQWyUaj 以下、そういうときの正確な状況を確認する方法。
次のコマンドラインを実行して、関連付けを確認。
assoc .rb
その出力結果を引数にしてftypeを実行して、実行されるコマンドラインを確認。
次のコマンドラインを実行して、関連付けを確認。
assoc .rb
その出力結果を引数にしてftypeを実行して、実行されるコマンドラインを確認。
924デフォルトの名無しさん
2017/08/18(金) 05:42:06.33ID:kayGF/0k powershellで実行してるものと、コマンドプロンプトで実行してるものが別ファイルである可能性くらいしか無いのでは
925デフォルトの名無しさん
2017/08/18(金) 09:35:17.44ID:dcEfP3Wf rubyでOpenglいじってるけどコード書き換えやすくて楽しすぎ
他にも楽しそうなもの無い?
他にも楽しそうなもの無い?
926デフォルトの名無しさん
2017/08/18(金) 10:03:46.81ID:5/NGjmsA Sequel4でSQL server上の日本語てんこ盛りのテーブルに接続できるか試しているんですが
日本語以前にシンボルを使ったアクセスだと全部upcaseされているっぽくて
大文字小文字混在の識別名?が指定できなくて詰んでます。
これどこで設定すればいいんでしょうか?
日本語以前にシンボルを使ったアクセスだと全部upcaseされているっぽくて
大文字小文字混在の識別名?が指定できなくて詰んでます。
これどこで設定すればいいんでしょうか?
927デフォルトの名無しさん
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 でも、シバンが使えるのか。
パス区切り文字は、/ でも認識できるのか
.\ は、カレントフォルダだから、相対パス付き
c:\ で始まっていたら、絶対パス
print_arg_1.rb A
これは、パスではない。
print_arg_1.rb というコマンドになるから、そんなコマンドは存在しない
基本は、実行したいスクリプトファイルのあるフォルダへ、
cd で移動して、そのフォルダで、.\ を付けて、
.\print_arg_1.rb A
とする
#!c:/ruby/bin/ruby
Windows でも、シバンが使えるのか。
パス区切り文字は、/ でも認識できるのか
928デフォルトの名無しさん
2017/08/18(金) 12:56:54.66ID:TX/e1x6q >>925
OpenCVとか?
OpenCVとか?
929デフォルトの名無しさん
2017/08/18(金) 13:02:16.70ID:TX/e1x6q >>927
> Windows でも、シバンが使えるのか。
使えるともそうでもないともいえる。
シェルではなく、Ruby自身が解釈する。
https://docs.ruby-lang.org/ja/latest/doc/spec=2frubycmd.html#shebang
> Windows でも、シバンが使えるのか。
使えるともそうでもないともいえる。
シェルではなく、Ruby自身が解釈する。
https://docs.ruby-lang.org/ja/latest/doc/spec=2frubycmd.html#shebang
930デフォルトの名無しさん
2017/08/18(金) 16:02:30.99ID:eIpnBeVf931デフォルトの名無しさん
2017/08/19(土) 00:44:19.65ID:drv+oAyy rbのファイルタイプを常に
ruby.exeで開くように設定したんだろう
そのときにたぶん"%1"ぐらいは設定されてるのだろうけど
ruby.exeで開くように設定したんだろう
そのときにたぶん"%1"ぐらいは設定されてるのだろうけど
932デフォルトの名無しさん
2017/08/19(土) 01:00:58.21ID:WAJdahb2 pythonのインストーラーが尋ねる2通りの選択
pathに設定するかwindowsシステムにアプリケーションを登録(推奨)みたいなやつがあって謎だったが
今意味が分かった
pathに設定するかwindowsシステムにアプリケーションを登録(推奨)みたいなやつがあって謎だったが
今意味が分かった
933デフォルトの名無しさん
2017/08/19(土) 12:53:30.00ID:9KU7ntuJ 環境変数PATH をいじくったら,
すべてのコマンドの起動に影響するから、大変
すべてのコマンドの起動に影響するから、大変
934デフォルトの名無しさん
2017/08/19(土) 13:10:45.58ID:s/Tmv27m WindowsでのRubyプログラムで
一番大変なのは環境構築だからな
環境変数がどうこうはよく調べておくように
一番大変なのは環境構築だからな
環境変数がどうこうはよく調べておくように
935デフォルトの名無しさん
2017/08/19(土) 13:47:01.70ID:9KU7ntuJ pyenv, rbenv など、仮想環境を使うと、
環境変数PATH の先頭に追加するから、極めて危険
〜python2
〜python3;〜python2
例えば、python コマンドの実行ファイルが、
〜python2 ではなく、先に、〜python3 のパスで見つかるから
そのコマンドが、どの実行ファイルを起動しているのか、くれぐれも注意せよ
環境変数PATH の先頭に追加するから、極めて危険
〜python2
〜python3;〜python2
例えば、python コマンドの実行ファイルが、
〜python2 ではなく、先に、〜python3 のパスで見つかるから
そのコマンドが、どの実行ファイルを起動しているのか、くれぐれも注意せよ
936デフォルトの名無しさん
2017/08/19(土) 15:34:54.77ID:vQyZjPpv ruby って -K で文字コード指定して実行出来るみたいだけど
バージョン指定して実行するようなオプションってあったっけ
バージョン指定して実行するようなオプションってあったっけ
937デフォルトの名無しさん
2017/08/19(土) 15:37:33.84ID:shqQNwwD >>936
ない
ない
938デフォルトの名無しさん
2017/08/20(日) 20:41:41.88ID:UK9Z84hT version指定というか、ruby処理系を指定しての実行なら可能なはず
上ででてきた#!c:/ruby/bin/rubyを応用して、
version毎にディレクトリ作ってパス指定
上ででてきた#!c:/ruby/bin/rubyを応用して、
version毎にディレクトリ作ってパス指定
939デフォルトの名無しさん
2017/08/20(日) 21:16:31.03ID:RkJWvq6Y rbenv 入れろ
940926
2017/08/21(月) 10:32:12.71ID:b3IxGKL2 突き止めました
エクステンションを導入して変換を無効化すればよかったです。
DB.extension :identifier_mangling
DB.identifier_input_method = nil
DB.identifier_output_method = nil
エクステンションを導入して変換を無効化すればよかったです。
DB.extension :identifier_mangling
DB.identifier_input_method = nil
DB.identifier_output_method = nil
941926
2017/08/21(月) 15:46:43.43ID:b3IxGKL2 間抜けなことしてました。
ODBC使うのにsequelが自前でやってると思ったらruby-odbc使ってた。
だからodbc-utf8を先にrequireしないとutf8が通らなくて日本語以前だった。
ほかにもfreeTDSでutf-8だと指定効かないとか気がつかなかった。
bundlerが依存関係全部処理してたから気がつかなかった…
ODBC使うのにsequelが自前でやってると思ったらruby-odbc使ってた。
だからodbc-utf8を先にrequireしないとutf8が通らなくて日本語以前だった。
ほかにもfreeTDSでutf-8だと指定効かないとか気がつかなかった。
bundlerが依存関係全部処理してたから気がつかなかった…
942デフォルトの名無しさん
2017/08/21(月) 19:28:02.56ID:QB5Pvnbo おつかれい
943926
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か…
さらに問題発覚。というかsequelの手抜きなんだけど
likeを発行するときにsql server向けの互換レイヤはLatin1_General_*を強制的に付け足す。
ハードコードされてて切り替えできない。とりあえずlib/sequel/adapters/shared/mssql.rbにパッチ当てたけど
gitみてもこの辺対処されて無いっぽい。5になれば期待できそうな感じはあるけど。
あーやっとやっつけ集計バッチをこれで置換できるかもしれん
あとはsinatraとhamlとsassか…
944926
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'があれば普通に日本語通ってしまった。
数年前に試したときにうまくいかなかったのも多分これのせいだったんだろう。
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'があれば普通に日本語通ってしまった。
数年前に試したときにうまくいかなかったのも多分これのせいだったんだろう。
945デフォルトの名無しさん
2017/08/23(水) 08:24:54.57ID:UQYl7YfQ そういば、1.8かどうか忘れたけど、
Arrayの派生クラス同士に+をつかって、新しい派生クラスのインスタンス出力しようとしたら、
派生元のArrayのインスタンスが出力されることがあったな
長い間気づかずどつぼにハマッてたのを思いだした
Arrayの派生クラス同士に+をつかって、新しい派生クラスのインスタンス出力しようとしたら、
派生元のArrayのインスタンスが出力されることがあったな
長い間気づかずどつぼにハマッてたのを思いだした
946デフォルトの名無しさん
2017/08/23(水) 08:33:32.73ID:UQYl7YfQ Arrayの派生クラス同士に
↓
Arrayの派生クラスのインスタンス同士に
↓
Arrayの派生クラスのインスタンス同士に
947デフォルトの名無しさん
2017/08/23(水) 14:36:30.50ID:PKj56klS たいがいの言語でそうなっちゃうでしょ。
まあしかたないね。
まあしかたないね。
948デフォルトの名無しさん
2017/08/23(水) 19:49:57.47ID:XbrvJbom >たいがいの言語でそうなっちゃうでしょ。
そんなことないよ
静的型だったならどこかでコンパイルエラーになって気づけた可能性もあるよ
そんなことないよ
静的型だったならどこかでコンパイルエラーになって気づけた可能性もあるよ
949デフォルトの名無しさん
2017/08/23(水) 20:17:43.31ID:UQYl7YfQ まーた涌きやがったかコイツ
まぁRubyだからこそ直接Arrayクラスのメソッドをself.classをつかったコードに書きえて、
派生先のクラスでも問題なく動かすようにできるわけだけど
当時もそうやって楽に対応できたし、今のverなら書き換える必要も無く対応してるんじゃないか?
確認してないけど
まぁRubyだからこそ直接Arrayクラスのメソッドをself.classをつかったコードに書きえて、
派生先のクラスでも問題なく動かすようにできるわけだけど
当時もそうやって楽に対応できたし、今のverなら書き換える必要も無く対応してるんじゃないか?
確認してないけど
950デフォルトの名無しさん
2017/08/24(木) 04:24:49.42ID:tqCPVr7b このような実例があると
動的型にすると無駄な時間が増えることが
初心者にも分かりやすくてよいですね
動的型にすると無駄な時間が増えることが
初心者にも分かりやすくてよいですね
951デフォルトの名無しさん
2017/08/24(木) 07:03:14.83ID:gO5USKuu 普通、配列のような基本的なクラスからは、クラスを派生させない
継承を使うのは、自分で作ったクラスか、
継承されることが前提のクラスだけ
一般的には、継承より包含を使う
包含の方が、継承よりも柔軟だから、
配列のような基本的なクラスには、合っている
継承を使うのは、自分で作ったクラスか、
継承されることが前提のクラスだけ
一般的には、継承より包含を使う
包含の方が、継承よりも柔軟だから、
配列のような基本的なクラスには、合っている
952デフォルトの名無しさん
2017/08/24(木) 12:21:31.80ID:NrLz+nwx DSLに何言ってんだか
Rubyの書きやすさ書き換えやすさは他の言語にない重要なポイントのひとつだろ
Rubyの書きやすさ書き換えやすさは他の言語にない重要なポイントのひとつだろ
953デフォルトの名無しさん
2017/08/24(木) 12:32:10.15ID:5a7RKQDl >>952
意味不
意味不
954デフォルトの名無しさん
2017/08/24(木) 14:28:41.04ID: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はそういうことを制限しない言語
そのかわりに相応の力量が求められる
静的型とか動的型とか全く関係ない
>>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はそういうことを制限しない言語
そのかわりに相応の力量が求められる
955デフォルトの名無しさん
2017/08/24(木) 14:56:19.91ID:gfjynZsV Arrayから直接派生させるよりも、
EnumerableやForwardable使うほうが普通だとは思うけどね
EnumerableやForwardable使うほうが普通だとは思うけどね
956デフォルトの名無しさん
2017/08/24(木) 15:12:33.89ID:+u51O4Tc 結果収束的には「可能ではあるが極力行わないようになる」こと自体は間違いはない
なんでもかんでもメソッドチェーンにしないのと似たような感覚
ただし(古い表現だが)足元を弾痕穴だらけにしないとわからない感覚なので、未経験者に最初から指示するようなものでもないな
それはそれで「本当は何もできないやらないわかっていない」机上の人だろう
なんでもかんでもメソッドチェーンにしないのと似たような感覚
ただし(古い表現だが)足元を弾痕穴だらけにしないとわからない感覚なので、未経験者に最初から指示するようなものでもないな
それはそれで「本当は何もできないやらないわかっていない」机上の人だろう
957デフォルトの名無しさん
2017/08/24(木) 15:38:18.44ID:NrLz+nwx DSLに何言ってんだか
Rubyの書きやすさ書き換えやすさは他の言語にない重要なポイントのひとつだろ
Rubyの書きやすさ書き換えやすさは他の言語にない重要なポイントのひとつだろ
958デフォルトの名無しさん
2017/08/24(木) 16:33:57.27ID:gfjynZsV >>956
Arrayを継承したいと考えた理由次第だろ
モンキーパッチ、リファインメント、継承、コンポジション
それぞれメリットデメリットあるんだから初心者であっても
そのトレードオフが理解して自分で判断できるようにならないとダメだよね?
基本クラスであってもどういう方式を選ぶのがいいのかは状況次第だから
背景理由を無視して、一つの選択肢を採用したほうがいいっていうのはちょっとっ極端に感じるよ
Arrayを継承したいと考えた理由次第だろ
モンキーパッチ、リファインメント、継承、コンポジション
それぞれメリットデメリットあるんだから初心者であっても
そのトレードオフが理解して自分で判断できるようにならないとダメだよね?
基本クラスであってもどういう方式を選ぶのがいいのかは状況次第だから
背景理由を無視して、一つの選択肢を採用したほうがいいっていうのはちょっとっ極端に感じるよ
959デフォルトの名無しさん
2017/08/24(木) 20:44:43.22ID:tqCPVr7b0 🐒
960デフォルトの名無しさん
2017/08/24(木) 20:49:02.11ID:tqCPVr7b >>954
仮にArrayを継承させたとして
何かのメソッドで思っていた型と違う型が返ってきたとして
静的型ならコンパイルエラーになって即気づける可能性が高いよね
せっかく>>945がRubyが動的型のせいで
> 長い間気づかずどつぼにハマッてたのを思いだした
って告白してくれてるのに
あるメソッドが、どのような仕様になってるかなんて
そんなものはどのような仕様にでも実装できてしまうわけで
(そう書けばそう動く、というだけ)
大事なのは、勘違いしたとき、間違ったときに、直ぐに気づけるかどうか
だからArrayを継承すべきじゃないとかってのは話の本質じゃなくて
長い間気づかずドツボにハマってたのは何故かって部分なんだよ
仮にArrayを継承させたとして
何かのメソッドで思っていた型と違う型が返ってきたとして
静的型ならコンパイルエラーになって即気づける可能性が高いよね
せっかく>>945がRubyが動的型のせいで
> 長い間気づかずどつぼにハマッてたのを思いだした
って告白してくれてるのに
あるメソッドが、どのような仕様になってるかなんて
そんなものはどのような仕様にでも実装できてしまうわけで
(そう書けばそう動く、というだけ)
大事なのは、勘違いしたとき、間違ったときに、直ぐに気づけるかどうか
だからArrayを継承すべきじゃないとかってのは話の本質じゃなくて
長い間気づかずドツボにハマってたのは何故かって部分なんだよ
961デフォルトの名無しさん
2017/08/24(木) 20:50:35.58ID:tqCPVr7b 俺みたいなののほうがマトモなこと言ってるのがもう不思議なぐらいだろ?
962デフォルトの名無しさん
2017/08/24(木) 20:50:57.98ID:tqCPVr7b それぐらいダメってことなんだよ、言語もコミュニティーも
963デフォルトの名無しさん
2017/08/24(木) 21:04:10.31ID:sQWhHmgZ はいはいNGNG
964デフォルトの名無しさん
2017/08/24(木) 21:37:49.84ID:gfjynZsV >>960
言語を使う側の能力の問題を
全部言語のせいにしちゃだめだよ
var result = myArray1 + myArray2
↑みたいに型推論使ってたら似たような事起きるだろ
それは型推論自体がダメだからなのか? 型推論使用禁止にする?
使う道具のメリットデメリットをちゃんと理解して使いこなせてないからだろ
静的型にメリットがあるのはわかるが結局それはトレードオフなんだよ
何を選択するかの問題
言語を使う側の能力の問題を
全部言語のせいにしちゃだめだよ
var result = myArray1 + myArray2
↑みたいに型推論使ってたら似たような事起きるだろ
それは型推論自体がダメだからなのか? 型推論使用禁止にする?
使う道具のメリットデメリットをちゃんと理解して使いこなせてないからだろ
静的型にメリットがあるのはわかるが結局それはトレードオフなんだよ
何を選択するかの問題
965デフォルトの名無しさん
2017/08/24(木) 21:46:32.32ID:tqCPVr7b その場合でもresultをどこかに渡したり
継承で拡張したメソッドを使ったり
実用的なことをしようとした瞬間にコンパイルエラーになる
お前はそのresultを何も使わずにそのまま捨てるのか?
結局、現実的な部分が全くないんだよね
机上の空論、それがRuby
継承で拡張したメソッドを使ったり
実用的なことをしようとした瞬間にコンパイルエラーになる
お前はそのresultを何も使わずにそのまま捨てるのか?
結局、現実的な部分が全くないんだよね
机上の空論、それがRuby
966デフォルトの名無しさん
2017/08/24(木) 21:51:04.51ID:tqCPVr7b しかも俺は
>気づける可能性が高いよね
とも書いてるわけで
現実的にはどこかの段階でコンパイルエラーになる可能性が高い、と
>気づける可能性が高いよね
とも書いてるわけで
現実的にはどこかの段階でコンパイルエラーになる可能性が高い、と
967デフォルトの名無しさん
2017/08/24(木) 21:55:21.82ID:Z79NM4TL スレッドの進行を妨害するのは止めてください
みんなが迷惑を被っています
みんなが迷惑を被っています
968デフォルトの名無しさん
2017/08/24(木) 21:56:03.09ID:yIhxd10m コンパイルが通ってもその後テストを走らせることになるけどな
969デフォルトの名無しさん
2017/08/24(木) 22:02:02.88ID:gfjynZsV >>965
オーバーライドしたメソッド呼び出してもコンパイルエラーにならないだろ
静的型でも同じこと十分起こりえるよ
運良くコンパイルエラーで拾えるケースだけ上げて
静的型使うべきなんていう主張はナンセンス
力量が低いやつは静的型選んだほうがいいよっていうアドバイスなら
まだ理解できるけどね
オーバーライドしたメソッド呼び出してもコンパイルエラーにならないだろ
静的型でも同じこと十分起こりえるよ
運良くコンパイルエラーで拾えるケースだけ上げて
静的型使うべきなんていう主張はナンセンス
力量が低いやつは静的型選んだほうがいいよっていうアドバイスなら
まだ理解できるけどね
970デフォルトの名無しさん
2017/08/24(木) 22:05:10.57ID:Z79NM4TL 再三にわたり伝えましたが、もう一度
スレッドの進行を妨害するのは止めてください
みんなが迷惑を被っています
スレッドの進行を妨害するのは止めてください
みんなが迷惑を被っています
971デフォルトの名無しさん
2017/08/24(木) 22:10:19.62ID:tqCPVr7b 起こりえるが、可能性は低いわけだ
運良くコンパイルエラーで拾える、というより
運悪くコンパイルエラーで拾えないケースもありうる、ということ
運が良くないとコンパイルエラーで拾えないんなら
静的型言語はこんなに普及してないし、もてはやされてもない
現実が全く見えていないんだね
運良くコンパイルエラーで拾える、というより
運悪くコンパイルエラーで拾えないケースもありうる、ということ
運が良くないとコンパイルエラーで拾えないんなら
静的型言語はこんなに普及してないし、もてはやされてもない
現実が全く見えていないんだね
972デフォルトの名無しさん
2017/08/24(木) 22:10:38.73ID:kEm5qs8H973デフォルトの名無しさん
2017/08/24(木) 22:13:45.33ID:gfjynZsV974デフォルトの名無しさん
2017/08/24(木) 22:18:05.33ID:lIOBscyk975デフォルトの名無しさん
2017/08/24(木) 22:19:22.21ID:gfjynZsV >>971
型推論禁止すれば運悪くコンパイルエラーで拾えないケースも潰せるね
型推論禁止すれば運悪くコンパイルエラーで拾えないケースも潰せるね
976デフォルトの名無しさん
2017/08/24(木) 22:20:59.16ID:gfjynZsV >>974
なんでお前が勝手に決めてんの?
なんでお前が勝手に決めてんの?
977デフォルトの名無しさん
2017/08/24(木) 22:23:28.89ID:lIOBscyk >>976
あなたにはもうそれを判断できるだけの客観的知性が残っていないからです
あなたにはもうそれを判断できるだけの客観的知性が残っていないからです
978デフォルトの名無しさん
2017/08/24(木) 22:26:09.58ID:yIhxd10m979デフォルトの名無しさん
2017/08/24(木) 22:39:55.72ID:tqCPVr7b 俺が言うのもなんだけど
ID:Z79NM4TLやID:lIOBscykのが正解だと思うよ
「そんなことは初めから分かってて承知の上で使っているのだから
放っておいてくれ」
って所でしょ
欠点を認められずに使ってる方が異常
ID:Z79NM4TLやID:lIOBscykのが正解だと思うよ
「そんなことは初めから分かってて承知の上で使っているのだから
放っておいてくれ」
って所でしょ
欠点を認められずに使ってる方が異常
980デフォルトの名無しさん
2017/08/24(木) 23:09:32.94ID:Z79NM4TL スレッドの進行を妨害するのは止めてください
みんなが迷惑を被っています
スレッドの趣旨が分からないなら1を読んで下さい
これ以上妨害を続ける場合は、過去の妨害行為時のログを元に弁護士との相談の上、
措置を取ります
みんなが迷惑を被っています
スレッドの趣旨が分からないなら1を読んで下さい
これ以上妨害を続ける場合は、過去の妨害行為時のログを元に弁護士との相談の上、
措置を取ります
981デフォルトの名無しさん
2017/08/24(木) 23:11:07.39ID:h4EzWrOx 自分が何をしてるか全く理解できないんだろうな
レスがつくことそのものに興奮してここがどこかも判断できていない
貴方達そのものを我々は必要としていない
貴方達が書き込んだそのものを私たちは歓迎しない
我々私たちの望みはひとつだけ、二度とここに来るな
レスがつくことそのものに興奮してここがどこかも判断できていない
貴方達そのものを我々は必要としていない
貴方達が書き込んだそのものを私たちは歓迎しない
我々私たちの望みはひとつだけ、二度とここに来るな
982デフォルトの名無しさん
2017/08/24(木) 23:27:57.47ID:tqCPVr7b 何か映画とかで、スラム街とか田舎町の住人に言われそうなセリフ
983デフォルトの名無しさん
2017/08/24(木) 23:38:06.01ID:Z79NM4TL スレッドの進行を妨害するのは止めてください
みんなが迷惑を被っています
スレッドの趣旨が分からないなら1を読んで下さい
これ以上妨害を続ける場合は、過去の妨害行為時のログを元に弁護士との相談の上、
措置を取ります
みんなが迷惑を被っています
スレッドの趣旨が分からないなら1を読んで下さい
これ以上妨害を続ける場合は、過去の妨害行為時のログを元に弁護士との相談の上、
措置を取ります
984デフォルトの名無しさん
2017/08/24(木) 23:39:36.79ID:c/yv4qcw 過去のgem配布サイト復活しないかな
985デフォルトの名無しさん
2017/08/25(金) 05:58:03.30ID:ZShOFEd5 「Effective Ruby」項目21にも書いてある
コアクラスを継承するな。委譲・包含(Forwardable)を使え。
is-a よりも、has-a を使え
たいていの言語では、String型なども継承できない。
final 指定されてる
初心者は、コレクションを継承したがるが、アンチパターン。
継承すれば、バグるだけ
たいていの「Effective 何々」とか、デザインパターンの本にも、書いてある
コアクラスを継承するな。委譲・包含(Forwardable)を使え。
is-a よりも、has-a を使え
たいていの言語では、String型なども継承できない。
final 指定されてる
初心者は、コレクションを継承したがるが、アンチパターン。
継承すれば、バグるだけ
たいていの「Effective 何々」とか、デザインパターンの本にも、書いてある
986デフォルトの名無しさん
2017/08/25(金) 06:40:42.06ID:aRYPlL4U987デフォルトの名無しさん
2017/08/25(金) 07:08:25.93ID:w/d6Mddl Arrayのような多くの人が慣れ親しんだインタフェースを提供したいと考えてるんだが、
それ自体が慣れで運用してしまうから問題、ということなのか?
極端な話myaddとかにした方がいいのか
それ自体が慣れで運用してしまうから問題、ということなのか?
極端な話myaddとかにした方がいいのか
988デフォルトの名無しさん
2017/08/25(金) 07:24:38.55ID:w/d6Mddl >>985
アンチパターン名は?
アンチパターン名は?
989デフォルトの名無しさん
2017/08/25(金) 10:40:58.89ID:ZShOFEd5 JavaScript の、prototype.js なども、コアクラスを上書きして、挙動が変わるから、
皆から、うっとうしがられてる
とにかく、バグるから、個人で、コアクラスを修正してはいけない
やってもいいのは、Date クラスに、便利な関数を追加したり、
Rails とか、使用説明書・メンテナンスもしっかりしている、
有名なフレームワークだけ
皆から、うっとうしがられてる
とにかく、バグるから、個人で、コアクラスを修正してはいけない
やってもいいのは、Date クラスに、便利な関数を追加したり、
Rails とか、使用説明書・メンテナンスもしっかりしている、
有名なフレームワークだけ
990デフォルトの名無しさん
2017/08/25(金) 11:07:17.19ID:8cxOpMBd ↑こいつはRuby畑の人間じゃないな
991デフォルトの名無しさん
2017/08/25(金) 11:27:54.95ID:BwHFndLq >>985
項目21の根拠はなんでしょう?
1. 継承を使うとなるとSuper Classの詳細を知る必要がある。
2. 移譲なら使いたい機能をつまみ食いすれば良いので楽。
こう言う事でしょうかねぇ?
項目21の根拠はなんでしょう?
1. 継承を使うとなるとSuper Classの詳細を知る必要がある。
2. 移譲なら使いたい機能をつまみ食いすれば良いので楽。
こう言う事でしょうかねぇ?
992985
2017/08/25(金) 12:26:40.27ID:ZShOFEd5 例えば、親のArray から、子のDerivedArray を派生させて、
reverse を呼んでも、子クラスを返さず、親クラスを返してしまう
全メソッドを、派生クラスに対応させるのが、無理だから
委譲で、Forwardable モジュールの、def_delegators で、
使うメソッドだけ、宣言する方が簡単
漏れも、10言語以上、数十冊の本を読んでるけど、
配列など、コアクラスを継承した、ソースコードは見た事がないし、
たいていの言語で、継承よりも委譲を使うように書いてある
そういう論文も多い
reverse を呼んでも、子クラスを返さず、親クラスを返してしまう
全メソッドを、派生クラスに対応させるのが、無理だから
委譲で、Forwardable モジュールの、def_delegators で、
使うメソッドだけ、宣言する方が簡単
漏れも、10言語以上、数十冊の本を読んでるけど、
配列など、コアクラスを継承した、ソースコードは見た事がないし、
たいていの言語で、継承よりも委譲を使うように書いてある
そういう論文も多い
993デフォルトの名無しさん
2017/08/25(金) 12:36:03.24ID:BwHFndLq >>992
ところで、論文はどのJournalから?
ところで、論文はどのJournalから?
994985
2017/08/25(金) 13:01:27.87ID:ZShOFEd5 「c++ 継承 委譲」で検索!
ほとんどの論文が、継承よりも委譲
ほとんどの論文が、継承よりも委譲
995デフォルトの名無しさん
2017/08/25(金) 15:26:58.12ID:W3qddKKH クロージャーつかおう
996デフォルトの名無しさん
2017/08/25(金) 15:28:23.63ID: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の配列を作り出すにはどの様にしたらいいでしょう?
b=[[1,3,4,5,6,8,9,11,13],[2,3,4,5,7,8,10,12,14]]
aの配列からbの配列を作り出すにはどの様にしたらいいでしょう?
997デフォルトの名無しさん
2017/08/25(金) 15:32:56.84ID: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]]
を作る。
>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]]
を作る。
998デフォルトの名無しさん
2017/08/25(金) 15:36:12.98ID:BwHFndLq ar = []
a.each do |e|
if !e.instance_of?(Array) then
ar << [e, e]
else
ar << e
end
まずはこんな感じ!
a.each do |e|
if !e.instance_of?(Array) then
ar << [e, e]
else
ar << e
end
まずはこんな感じ!
999デフォルトの名無しさん
2017/08/25(金) 15:50:59.00ID:4MOWRfGQ >>996
b = a.each_with_object([[],[]]) {|(x, y), acc| acc[0] << x; acc[1] << (y || x) }
b = a.each_with_object([[],[]]) {|(x, y), acc| acc[0] << x; acc[1] << (y || x) }
1000デフォルトの名無しさん
2017/08/25(金) 16:00:09.35ID:HsL9LVKJ10011001
Over 1000Thread このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
life time: 118日 13時間 58分 11秒
もう書けないので、新しいスレッドを立ててくださいです。。。
life time: 118日 13時間 58分 11秒
レス数が1000を超えています。これ以上書き込みはできません。
ニュース
- 高市首相、トランプ米大統領に「早期に会いたい」 日中関係悪化受け… ★3 [BFU★]
- 「残クレ」でマイホーム、国が銀行向け保険 新型住宅ローン普及促す -日経 ★3 [少考さん★]
- 【コメ】卸売業者「簡単に安売りできない」「大暴落起きれば大赤字に」 JA「新米の販売進度が近年になく遅い。コメの回転が悪い」 ★4 [Hitzeschleier★]
- 小島瑠璃子さん、代表取締役を務める会社を破産申請 [牛丼★]
- 高市早苗首相が天理教系企業に“巨額発注” 総額5000万円 本人は「政治団体の活動に必要な支出」と回答 [Hitzeschleier★]
- ホリエモン、「持ち家=幸せという価値観は過去のもの」と断言「快適な住まいが欲しいなら、賃貸住宅を次々に替えていく」 [muffin★]
- 【安倍晋三】中国船4隻が領海侵入 [828897501]
- 【実況】博衣こよりのえちえちスーパーダンガンロンパ3🧪
- 【画像】自分がオッサンか若者か、5秒で判断できる画像がこれらしい [977261419]
- えちえち女だけど
- 【新番組】轟はじめ🐧⚡のぶんぶんぶーん🚗💨!【🏡】
- 自民党のヒゲ「日本側の無線でcopyとは言ったが了解という意味ではない」 [834922174]
