プログラミング言語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
レス数が950を超えています。1000を超えると書き込みができなくなります。
2017/04/29(土) 02:01:58.34ID:urVXnFrH
882デフォルトの名無しさん
2017/08/12(土) 08:47:10.82ID:4WztSMRy >>881
paizaは2.4系だから。あと細かいけど、インタプリタだからコンパイルエラーと呼ぶのは違う気がする
paizaは2.4系だから。あと細かいけど、インタプリタだからコンパイルエラーと呼ぶのは違う気がする
883デフォルトの名無しさん
2017/08/12(土) 11:48:52.04ID:CSnAjTr3 文字列のimmutable化による変更のひとつとして、Stringクラスに単項演算子+、-が追加されてる。
ttp://qiita.com/iwamot/items/2ddf8de09d5dbcad2df9
こういう事情らしい。
http://d.hatena.ne.jp/ku-ma-me/touch/20151004
Rubyはやっぱりクソ。互換性に対する配慮が甘い。
ttp://qiita.com/iwamot/items/2ddf8de09d5dbcad2df9
こういう事情らしい。
http://d.hatena.ne.jp/ku-ma-me/touch/20151004
Rubyはやっぱりクソ。互換性に対する配慮が甘い。
884デフォルトの名無しさん
2017/08/12(土) 11:53:23.96ID:CSnAjTr3885デフォルトの名無しさん
2017/08/12(土) 11:59:10.11ID:CSnAjTr3886デフォルトの名無しさん
2017/08/12(土) 12:02:12.46ID:45XD5hPK887デフォルトの名無しさん
2017/08/12(土) 12:33:20.77ID:4WztSMRy888デフォルトの名無しさん
2017/08/12(土) 13:33:01.18ID:K4TPp3Ad >3.0以降のデフォルトimmutable化
定数は自動的にfreezeするくらいの対応で良かったな
定数は自動的にfreezeするくらいの対応で良かったな
889デフォルトの名無しさん
2017/08/12(土) 13:41:07.20ID:zBhrUX+c だからそれじゃRailsさんは満足しないんだって
890デフォルトの名無しさん
2017/08/12(土) 13:46:16.09ID:K4TPp3Ad Rails(無理)が通ればRuby(道理)が引っ込む
891デフォルトの名無しさん
2017/08/12(土) 13:57:56.00ID:pblAmUa6 RoRのためのrubyをフォークしろって事だな
892デフォルトの名無しさん
2017/08/12(土) 14:01:19.65ID:zBhrUX+c Railsという単一の言語でいいと思うのよ実際
893デフォルトの名無しさん
2017/08/12(土) 14:25:04.02ID:zLZ79VVH Railsさんを追い出したら島根のお役所へのPRに使えるようなRuby採用事例がほとんど無くなって金貰えなくなるからね
Chefみたいなインフラ系の事例を出されても役所の人「ハァ?」だろうし
Chefみたいなインフラ系の事例を出されても役所の人「ハァ?」だろうし
894デフォルトの名無しさん
2017/08/12(土) 14:51:06.74ID:4WztSMRy RoR上でのみデフォルトでimmutable、ってのも立派な"Rail"じゃないのかなあ。
どうせマジックコメントで切り替えられるようにするんだったらわざわざRuby全体のデフォルトを変えんでもいいでしょうに……
どうせマジックコメントで切り替えられるようにするんだったらわざわざRuby全体のデフォルトを変えんでもいいでしょうに……
895デフォルトの名無しさん
2017/08/12(土) 15:19:12.43ID:K4TPp3Ad896デフォルトの名無しさん
2017/08/12(土) 15:26:53.07ID:zLZ79VVH897デフォルトの名無しさん
2017/08/12(土) 15:28:23.95ID:K4TPp3Ad898デフォルトの名無しさん
2017/08/12(土) 15:29:12.97ID:MaFRFCaQ899デフォルトの名無しさん
2017/08/12(土) 23:34:01.47ID:QBhBJkcV >>870
俺的今日のNo1、カキコ
俺的今日のNo1、カキコ
900デフォルトの名無しさん
2017/08/13(日) 00:56:22.58ID:SYaWjJhn901デフォルトの名無しさん
2017/08/13(日) 01:10:49.40ID:PA7iDDOj これも結局速度のために手動で変な最適化をプログラマに課してるだけのことだよな
こーゆーノリはC言語時代にはよくあったと思うけど
なんせ当時のCPUは今から考えるとものすごく遅かったからなぁ
だけど今時だとCPUも速いしコンパイラの最適化も凄いから
特に何も考えなくても十分に速いので、変な最適化に技巧を凝らすより
読みやすいコード書けってのが主流だよな
だけどRubyはメジャー言語より平気で50倍とか遅いし
コンパイラの最適化も糞なので手動で最適化するんだなwww
3.0GHzの最新CPUを使ってても50〜100MHzのCPU相当の速度になるし
加えてコンパイラの最適化も糞で手動で最適化とか
まるで20年ぐらい前の感じだな
動的型でプログラミングが楽になるはずが
静的な型チェックもなければ速度が遅くて手動で最適化とか
本当に動的型は素晴らしいですね
こーゆーノリはC言語時代にはよくあったと思うけど
なんせ当時のCPUは今から考えるとものすごく遅かったからなぁ
だけど今時だとCPUも速いしコンパイラの最適化も凄いから
特に何も考えなくても十分に速いので、変な最適化に技巧を凝らすより
読みやすいコード書けってのが主流だよな
だけどRubyはメジャー言語より平気で50倍とか遅いし
コンパイラの最適化も糞なので手動で最適化するんだなwww
3.0GHzの最新CPUを使ってても50〜100MHzのCPU相当の速度になるし
加えてコンパイラの最適化も糞で手動で最適化とか
まるで20年ぐらい前の感じだな
動的型でプログラミングが楽になるはずが
静的な型チェックもなければ速度が遅くて手動で最適化とか
本当に動的型は素晴らしいですね
902デフォルトの名無しさん
2017/08/13(日) 01:15:14.97ID:WE0t0sIJ スクリプトで手間暇かけて凝ったアルゴリズムで計算量減らすより
C++でブルートフォースしちゃった方がてっとり早くて速かったりするのはよくある話
スクリプト向きのタスクか否かを感覚的に見抜けることは大切
C++でブルートフォースしちゃった方がてっとり早くて速かったりするのはよくある話
スクリプト向きのタスクか否かを感覚的に見抜けることは大切
903デフォルトの名無しさん
2017/08/13(日) 01:20:36.73ID:PA7iDDOj 今もう2017年だよな
Rubyはこんな最適化のために
今更言語仕様を変えるだとか変えないとかで盛り上がってて
何なんだろうな
これから先もずっとこんな調子なのかね
元の実行速度が遅いから速くするための最適化のために言語仕様をどうのこうの
今はforループを自動で並列展開してマルチスレッドとかSIMDとかで
コンパイラに頑張ってもらって速度を稼ごうとか
そういうこと言ってる時代なのに
やってることがあまりにも原始的というかなんというか
技術的に何も面白くないし、触ってて本当に楽しいんだろうか?
よく考えられた静的型のシステムがあるわけでもないし
化石言語だな
ありとあらゆることをプログラマに丸投げ
Rubyはこんな最適化のために
今更言語仕様を変えるだとか変えないとかで盛り上がってて
何なんだろうな
これから先もずっとこんな調子なのかね
元の実行速度が遅いから速くするための最適化のために言語仕様をどうのこうの
今はforループを自動で並列展開してマルチスレッドとかSIMDとかで
コンパイラに頑張ってもらって速度を稼ごうとか
そういうこと言ってる時代なのに
やってることがあまりにも原始的というかなんというか
技術的に何も面白くないし、触ってて本当に楽しいんだろうか?
よく考えられた静的型のシステムがあるわけでもないし
化石言語だな
ありとあらゆることをプログラマに丸投げ
904デフォルトの名無しさん
2017/08/13(日) 01:31:38.50ID:PA7iDDOj ありとあらゆることが悪い方に作用している様は本当にすごいよ
動的型のおかげでそもそも遅そうなのにろくに最適化もかからないから鈍足
遅すぎるのでプログラマが手動で最適化してください
加えて静的な型チェックもしないのでテストするなりなんなり
プログラマが頑張ってください
動的型って何なんだろうね
動的型のおかげでそもそも遅そうなのにろくに最適化もかからないから鈍足
遅すぎるのでプログラマが手動で最適化してください
加えて静的な型チェックもしないのでテストするなりなんなり
プログラマが頑張ってください
動的型って何なんだろうね
905デフォルトの名無しさん
2017/08/13(日) 02:53:31.36ID:9GyPh5fY 専ブラを使っている人は次の正規表現をNGIDとして突っ込んでおきましょう
\b(ppLsekVC|qMkdrUOQ|IBgoqo2I|AOJFjP\+S|bC2KM4MS|Wy5AX0em|m8GLf68F|hEgnFYnk|HGihyxQL|PA7iDDOj)\b
\b(ppLsekVC|qMkdrUOQ|IBgoqo2I|AOJFjP\+S|bC2KM4MS|Wy5AX0em|m8GLf68F|hEgnFYnk|HGihyxQL|PA7iDDOj)\b
906デフォルトの名無しさん
2017/08/13(日) 04:14:05.84ID:SQfD9dn9 ワッチョイじゃないからあんまり意味ないんだよなぁ
1行読んで心のNGフィルターに突っ込んでるから問題ないけど
1行読んで心のNGフィルターに突っ込んでるから問題ないけど
907デフォルトの名無しさん
2017/08/13(日) 14:33:04.78ID:bHAx/aO4 ま〜た涌いてるのか
はよー親に製造責任とってもらえよ
はよー親に製造責任とってもらえよ
908デフォルトの名無しさん
2017/08/17(木) 15:09:10.89ID:ESEriUZI 趣味で作られた「オレ様の考える最強言語」にちょっと高望みしすぎじゃないの とか言っちゃダメかな
909デフォルトの名無しさん
2017/08/17(木) 15:16:46.98ID:+kyvImyc 初心者スレで暴れまわって機能不全に陥れるとは
Rubyは完全に澱んでるな
Pythonコミュニティとすっかり差が開いてしまった
人気ランキング1位
Pythonは今のうちに習得すべき?『スラスラわかるPython』著者・岩崎さんとPyCon JP理事の寺田さんが語る:CodeZine(コードジン)
http://codezine.jp/article/detail/10329
Rubyは完全に澱んでるな
Pythonコミュニティとすっかり差が開いてしまった
人気ランキング1位
Pythonは今のうちに習得すべき?『スラスラわかるPython』著者・岩崎さんとPyCon JP理事の寺田さんが語る:CodeZine(コードジン)
http://codezine.jp/article/detail/10329
910デフォルトの名無しさん
2017/08/17(木) 18:26:41.54ID:iwOtRZLz >>908
いわゆるスクリプト言語の多くがそうなんだよなあ。
いわゆるスクリプト言語の多くがそうなんだよなあ。
911デフォルトの名無しさん
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と表示できます。
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と表示できます。
912デフォルトの名無しさん
2017/08/17(木) 20:44:36.46ID:KIRXYCO4 c:\ruby\samples>print_arg_1.rb A
のAの前のスペースが全角だからじゃね
のAの前のスペースが全角だからじゃね
913デフォルトの名無しさん
2017/08/17(木) 21:09:45.66ID:ENaOxomf914デフォルトの名無しさん
2017/08/17(木) 21:12:53.32ID:KIRXYCO4915デフォルトの名無しさん
2017/08/17(木) 21:16:37.74ID:KIRXYCO4 ruby hoge.rb A
頭にrubyをつけてみては
頭にrubyをつけてみては
916デフォルトの名無しさん
2017/08/17(木) 21:28:46.60ID:ENaOxomf917デフォルトの名無しさん
2017/08/17(木) 21:50:18.63ID:eXIxbYLq powershellではどう入力したの
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 自分が何をしてるか全く理解できないんだろうな
レスがつくことそのものに興奮してここがどこかも判断できていない
貴方達そのものを我々は必要としていない
貴方達が書き込んだそのものを私たちは歓迎しない
我々私たちの望みはひとつだけ、二度とここに来るな
レスがつくことそのものに興奮してここがどこかも判断できていない
貴方達そのものを我々は必要としていない
貴方達が書き込んだそのものを私たちは歓迎しない
我々私たちの望みはひとつだけ、二度とここに来るな
レス数が950を超えています。1000を超えると書き込みができなくなります。
ニュース
- 高市首相、トランプ米大統領に「早期に会いたい」 日中関係悪化受け… ★3 [BFU★]
- 【コメ】卸売業者「簡単に安売りできない」「大暴落起きれば大赤字に」 JA「新米の販売進度が近年になく遅い。コメの回転が悪い」 ★4 [Hitzeschleier★]
- 「残クレ」でマイホーム、国が銀行向け保険 新型住宅ローン普及促す -日経 ★3 [少考さん★]
- 高市早苗首相が天理教系企業に“巨額発注” 総額5000万円 本人は「政治団体の活動に必要な支出」と回答 [Hitzeschleier★]
- 小島瑠璃子さん、代表取締役を務める会社を破産申請 [牛丼★]
- ホリエモン、「持ち家=幸せという価値観は過去のもの」と断言「快適な住まいが欲しいなら、賃貸住宅を次々に替えていく」 [muffin★]
- 【実況】博衣こよりのえちえちスーパーダンガンロンパ3🧪
- 人生に飽きた
- 【画像】自分がオッサンか若者か、5秒で判断できる画像がこれらしい [977261419]
- 【新番組】轟はじめ🐧⚡のぶんぶんぶーん🚗💨!【🏡】
- 自民党のヒゲ「日本側の無線でcopyとは言ったが了解という意味ではない」 [834922174]
- お
