■ このスレッドは過去ログ倉庫に格納されています
Ruby 初心者スレッド Part 62
- 1 :デフォルトの名無しさん:2017/11/24(金) 00:35:29.31 ID:rLZHdQ3Q.net
- プログラミング言語Rubyについての、初心者向けスレです。質問・要望・雑談などどうぞ。
質問するときは、OSやRubyのバージョン、エラーメッセージを書いたほうがいいお
Ruby on RailsについてはWEBプログラミング板で
前スレ
Ruby 初心者スレッド Part 61
https://mevius.5ch.net/test/read.cgi/tech/1503644351/
るりまサーチ (リファレンス検索)
http://rurema.clear-code.com/
Rubyist Magazine - るびま
http://jp.rubyist.net/magazine/
逆引きRuby
http://www.namaraii.com/rubytips/
- 2 :デフォルトの名無しさん:2017/11/24(金) 00:36:08.95 ID:rLZHdQ3Q.net
- たのしいRuby 第5版、2016
Effective Ruby、2015
メタプログラミング Ruby 第2版、2015
Rubyのしくみ、2014
改訂3版 基礎 Ruby on Rails、黒田努・佐藤和人、2015
リファクタリング:Rubyエディション、2010
- 3 :デフォルトの名無しさん:2017/11/24(金) 01:29:56.00 ID:rLZHdQ3Q.net
- 開発環境
RDE
Windows用IDE
https://ja.osdn.net/projects/sfnet_rubyde/
以下、RDEの使用説明
http://rubyde.sourceforge.net/hiki/ja/FrontPage.html
サクラエディタ
Windows用高機能エディタ
https://ja.osdn.net/projects/sfnet_sakura-editor/
以下、ruby用設定の説明
http://supportdoc.net/support-sakura/ruby.html
Emacs
GNUの高機能エディタ
以下、EmacsでのRuby開発について
https://qiita.com/hiconyan/items/582e27128decfe9d249e
VSCode
マルチOSに対応したマイクロソフト社製のソースコードエディタ
https://code.visualstudio.com/download
- 4 :デフォルトの名無しさん:2017/11/24(金) 01:46:47.26 ID:rLZHdQ3Q.net
- RDEのデバッグ機能を使う場合、設定においてデバッグオプションを「-r debug2」から「-r debug」と書き換えて、
ruby付属のdebug.rbを使うようにすること
RDE付属のdebug2.rbはruby1.8用のスクリプトのため、現在のrubyのversionには使えません
- 5 :デフォルトの名無しさん:2017/11/24(金) 08:36:20.17 ID:r53+zpq0.net
- >>1 乙
- 6 :デフォルトの名無しさん:2017/11/25(土) 15:40:51.82 ID:unmm6CwQ.net
- 出るφは撃たれる
- 7 :デフォルトの名無しさん:2017/11/26(日) 20:55:02.73 ID:zBIai8/a.net
- 前スレにも書いたけど中級者上級者向けのRuby本が必要だと思う
それもruby界隈で一般化された題材じゃなくてまだ広く知れ渡っていない専門的な題材を扱った本を
Openglとか分散VMとか大規模演算rubyとか他にもこういう題材は結構あると思う
- 8 :デフォルトの名無しさん:2017/11/26(日) 21:55:29.31 ID:OhY/q4lK.net
- 現段階で専門的な題材の書籍を出しても赤字になるだけで厳しいと思う
だったらまだ一般的なプログラミング雑誌で連載する方が見込みはあるんじゃないかなあ
あとは教育機関・研究機関における浸透度合いを高めるところも攻めた方がいい
それと会社のお偉いさんはRubyの案件をさらに増やして
とりあえず日本で有人月面着陸を計画してるからmrubyも載せようぜ
- 9 :デフォルトの名無しさん:2017/11/26(日) 22:38:23.64 ID:e8MWK5Ug.net
- 初心者向け書籍で裾野を広げまくったからニーズはあるだろ
いわば教科書を読んで基礎を学んで、それらを試せる応用分野をみんな探している所
Rubyと+αの専門性の高いものを出せば、目的はないけど何か読みたいって層にはドンピシャで来る
web系はRailsやWEBrickでこれからも出るし、科学計算や3Dとか教養シリーズみたいな感じで出せば全然いける
- 10 :デフォルトの名無しさん:2017/11/26(日) 22:48:35.39 ID:LT7w1DpA.net
- データ分析系は
Pythonが流行してるから
そっちで本出すだろ
Rubyだとライブラリと
速度がネックになるから
- 11 :デフォルトの名無しさん:2017/11/26(日) 23:21:25.25 ID:azT4+Y0L.net
- >>9
cadをやってるから、物理演算とかシミュレート系をだして欲しい
あと、組込み向けにソースコンパイルやらRuby-C間の解説とか
- 12 :デフォルトの名無しさん:2017/11/26(日) 23:44:18.39 ID:e8MWK5Ug.net
- >>10
学んだRubyで何かする本が求められていると言っているのに、
何故Pythonが出てくるんだ?
- 13 :デフォルトの名無しさん:2017/11/27(月) 00:33:15.55 ID:o0pIkOSz.net
- rubyコンとかRuby勉強会とかどんな感じ?
マシンスペック的にはどんなのもっていけばいい?
- 14 :デフォルトの名無しさん:2017/11/27(月) 01:59:56.02 ID:x+zk8UEy.net
- 開発マシンの、CPU は i7、メモリは最低でも 8GB(16GB が望ましい)
Windows 10 pro
WSL・仮想OS で、Linux
Mac の人も多い
- 15 :デフォルトの名無しさん:2017/11/27(月) 07:55:32.25 ID:gt4bCosJ.net
- >>12
Rubyはrails以外に使い道無いから他の事したいなら他の言語覚えろよ
- 16 :デフォルトの名無しさん:2017/11/27(月) 12:11:21.22 ID:W0wAPtjw.net
- >荒らしを構ってる奴は荒らし本人の自演だから、構ったりせず見つけ次第、自演を指摘して排除すること
>荒らし叩きに見せて持論を言い出す奴も荒らし本人だから、これも自演を指摘して排除すること
>他の言語について話そうとする奴は、その言語スレから排除されてRubyスレに流れ着いた荒らしだから、これも構ったりせず元の言語スレへ誘導すること
- 17 :デフォルトの名無しさん:2017/11/27(月) 13:14:45.58 ID:o0pIkOSz.net
- >>15
荒らし行為をやり続けてPythonスレから追い出されたの?
ここじゃ病気は治せないから病院に行ったほうがいいよ
>>14
やっぱり結構なマシンを持って行くんだね
ARMプロセッサ積んだボードにrubyをクロスコンパイルして入れた自作のマシンとか考えてたけど、
低スペックでもWinノートPCを買っておいた方が良いか
- 18 :デフォルトの名無しさん:2017/11/27(月) 18:50:34.20 ID:agUtcdpR.net
- 最近の荒らしはやり方が雑だよな
殆ど単発の自演しか涌かないし
出て来ても「はいはい、荒らしてますよ〜」みたいな嫌々やらされてる感しかない
- 19 :デフォルトの名無しさん:2017/11/27(月) 19:23:05.97 ID:x+zk8UEy.net
- Ruby は、Linux 必須だから、WSL・仮想OS ・Docker などが必須
2つのOS を動かすから、メモリは最大限積む必要があり、
CPU はi7 にすると、16GB まで積める。
i3, i5 だと、8GBまでかな?
それと、たいていのプログラム言語の本の動作条件が、Windows Pro
一般的に、開発用PC は、高スペック。
画面も、フルHD 以上
- 20 :デフォルトの名無しさん:2017/11/27(月) 21:01:16.83 ID:LZyaXIN8.net
- もうこいつどんだけ粘着するのか
- 21 :デフォルトの名無しさん:2017/11/27(月) 21:44:22.84 ID:agUtcdpR.net
- 自演も中途半端
もうただ単に定型文を打つだけで満足してて、
荒れたかどうかも気にしなくなってるんだよな
夏休みの宿題やらされてる子供かよ
- 22 :デフォルトの名無しさん:2017/11/27(月) 22:51:47.97 ID:rAG/Bhsm.net
- 「また自演した」「このスレには自演が居るから」「このスレには自演がいます!いますよ!ほら!」としか書くことがなくなったんだろうなと思う
本当に他人から貰ったレスというのは自分がいちばんよくわかってて、そしてそれは本レスにおいても自演指摘レスにおいてもおそらく極めて少ない
住人の冷めた態度が効いてると表現することはできなくもないが
- 23 :デフォルトの名無しさん:2017/11/27(月) 23:02:26.98 ID:SI4QCwP5.net
- 静的型マンセーの粘着がいるのは確かだが、何でもかんでも自演自演言ってるやつもちょっと病的だよな
ちょっとネガティブな発言しただけなのに荒らしの自演認定されたことあるし
- 24 :デフォルトの名無しさん:2017/11/27(月) 23:32:26.87 ID:W0wAPtjw.net
- 上の人は荒らしだからスルーでお願いします
>荒らしを構ってる奴は荒らし本人の自演だから、構ったりせず見つけ次第、自演を指摘して排除すること
>荒らし叩きに見せて持論を言い出す奴も荒らし本人だから、これも自演を指摘して排除すること
>他の言語について話そうとする奴は、その言語スレから排除されてRubyスレに流れ着いた荒らしだから、これも構ったりせず元の言語スレへ誘導すること
- 25 :デフォルトの名無しさん:2017/11/27(月) 23:50:32.31 ID:9RbRf1jA.net
- >>22
>>23
即座にバレとる
アホやろお前?
- 26 :デフォルトの名無しさん:2017/11/27(月) 23:53:05.49 ID:rAG/Bhsm.net
- >>23
スレ住人が過去に何度か同調したことがあるのだが、
そのせいで自分が こ れ 以 降 何 を し て も 正義で多数派で「こちら側」に居れると勘違いしてしまったらしいのだ
いつか自分が「あちら側」に追いやられていたことに気づく日がくればいいと思う
- 27 :デフォルトの名無しさん:2017/11/28(火) 00:02:17.19 ID:1+J/qigr.net
- そうやって嫌々やってるからまたボロを出す
22:51:47.97
23:02:26.98
こんだけ時間くっつけて発言すればバカにさえ自演だってわかる
しっかり頭を働かせろ
ゆとり世代か何かか?
- 28 :デフォルトの名無しさん:2017/11/28(火) 00:03:55.96 ID:qPKDeu2+.net
- だから、まあ、我々はふたつの荒らしを並行同時にあしらいながら進まねばならなくなっている
「やってはいけないこと」「さわってはいけないもの」は倍以上に増え、発言の困難性は以前より遥かに増した
難儀なことだ
- 29 :デフォルトの名無しさん:2017/11/28(火) 00:07:19.20 ID:TcvLN2I4.net
- 完動する事を確認しているDLライブラリ使ったスクリプトを、思いつきでrubyに付属のdebug.rbで診たら、
dllの関数呼び出しの所で`unknown symbol "関数名"' (RuntimeError)がでてなかなかブレークポイントまで進めません
一部の止まるエラーを抑えたり、スクリプト上の一定部分だけデバッガー無効化したりすることは可能ですか?
- 30 :デフォルトの名無しさん:2017/11/28(火) 00:39:00.64 ID:yd/D5jJi.net
- >>28は俺らを辟易させることが目的らしい
でもそれって俺等がいつも通りに荒らしをバカにしながら会話し続けたらどうするの?
いつまでもあの騙せそうにない自演でレスを稼いでくれる?
- 31 :デフォルトの名無しさん:2017/11/28(火) 03:30:10.92 ID:PkJOT8pW.net
- そのエラーになる部分を、コメントアウトして実行すれば?
- 32 :デフォルトの名無しさん:2017/11/29(水) 04:08:52.30 ID:zX4fkY5X.net
- debug.rbはkernelのset_trace_funcで登録したprocを、デバッギーの行毎に呼び出してる
だから呼び出されたくない行は登録するproc内でif文を使って分岐させてやれば良い
やってることはそれ程難しくないし、debug.rbに10行程度書き加えれば出来るよ
- 33 :デフォルトの名無しさん:2017/11/29(水) 18:32:32.11 ID:MwOAAXQr.net
- >>29
DEBUGGER__クラス内の一番下段の下記を、
stdout.printf "Debug.rb\n"
stdout.printf "Emacs support available.\n\n"
RubyVM::InstructionSequence.compile_option = {
trace_instruction: true
}
set_trace_func proc { |event, file, line, id, binding, klass, *rest|
DEBUGGER__.context.trace_func event, file, line, id, binding, klass
}
- 34 :デフォルトの名無しさん:2017/11/29(水) 18:44:22.06 ID:MwOAAXQr.net
- 下のに書き換え、
@@ignore_ = {}
def DEBUGGER__.ignore_(ignorefl = @@ignore_)
return @@ignore_ = ignorefl
end
stdout.printf "Debug.rb\n"
stdout.printf "Emacs support available.\n\n"
RubyVM::InstructionSequence.compile_option = {:trace_instruction => true} if RUBY_VERSION > "1.9.0"
set_trace_func proc { |event, file, line, id, binding, klass, *rest|
tb = caller(0);last_i = "";i_name = "";i_num = 0;
last_i = tb[-1] if tb.size > 0
last_i.dup.each_line(":"){ |i_line|
if i_line .to_i > 0 || (i_line.chop).to_i > 0
break if i_name.size < 1
i_num = (i_line[-1] == ":" ? (i_line.chop).to_i : i_line .to_i)
i_name = i_name.chop
break
else
i_name += i_line
end
}
if i_num > 0 && DEBUGGER__.ignore_.include?(i_name) && DEBUGGER__.ignore_[i_name].include?(i_num)
# debug_skip
else
DEBUGGER__.context.trace_func event, file, line, id, binding, klass
end
}
- 35 :デフォルトの名無しさん:2017/11/29(水) 18:51:55.61 ID:MwOAAXQr.net
- デバッグするソースファイルの最初の方に以下を書き加え、debugをスキップしたいファイルをignorefに、行をRangeかArrayでignorelにいれる
if defined? DEBUGGER__
ignoref = __FILE__
ignorel = []# 27..48
DEBUGGER__.ignore_[ignoref] = ignorel
end
debugのスクリプトそのものを書き換えるんじゃなくて、
複製して別名をつけたものを書き換えて使ったほうが良いよ
- 36 :デフォルトの名無しさん:2017/11/30(木) 01:37:59.97 ID:XY2yKXS8.net
- Rubyでopenglのシェーダーを扱った本、技術評論社辺りから出してくれないかな
こういうのこそRuby向けだよ
- 37 :デフォルトの名無しさん:2017/11/30(木) 13:11:26.74 ID:dNsMGYhb.net
- OpenGL自体のgemとかはそろってるから、
ミクミク互換やXファイル互換のソースを添付して出せば売れそうだけどな
- 38 :デフォルトの名無しさん:2017/12/01(金) 01:22:55.57 ID:UulhXT9P.net
- # frozen_string_literal: false
ソースの最初に上のように書かれてるのを見つけたけどどいう意味?
他にもこういうのあるの?
- 39 :デフォルトの名無しさん:2017/12/01(金) 04:44:53.26 ID:zZy3ktkC.net
- >>38
ruby-3以降はリテラル文字列がfrozenされることになるけど、
そうさせないためのマジックコメントでリテラル文字列の破壊的動作が許されるようにしている
ruby-2.3以降であればruby --enable frozen-string-literal <ファイル名>でrubyを起動することで、
リテラル文字列をfrozenされた状態とする挙動を試すことができる
# これまでの挙動
$ ruby -e 'p "A".downcase!'
"a"
# ruby-3以降のリテラル文字列の挙動を試す (ruby-2.3以降)
$ ruby --enable frozen-string-literal -e 'p "A".downcase!'
-e:1:in `downcase!': can't modify frozen String (RuntimeError)
from -e:1:in `<main>'
- 40 :デフォルトの名無しさん:2017/12/02(土) 02:33:11.13 ID:7L3qqdqd.net
- >>39
前スレのリテラルの話でArrayが出てたけど、Arrayも何か将来的に関係あるの?
- 41 :デフォルトの名無しさん:2017/12/02(土) 12:25:58.45 ID:S9pj625T.net
- 二項演算子型のシンタックスシュガーって場合によっては意図したとおりに動いてくれないんだね
Math::PI %1 #=> unknown type of %string
Math::PI *1 #=> undefined method `PI' for Math:Module
Math::PI /1 #=> unterminated regexp meets end of file
Math::PI >1 #=> true
pi = Math::PI
pi %1 #=> unknown type of %string
pi *1 #=> 3.141592653589793
pi /1 #=> 3.141592653589793
pi >1 #=> true
- 42 :デフォルトの名無しさん:2017/12/02(土) 12:28:39.60 ID:S9pj625T.net
- pi %1 #=> unknown type of %string
じゃなくて
pi %1 #=> 0.14159265358979312
だった
定数だとうまくいかない模様
- 43 :デフォルトの名無しさん:2017/12/02(土) 12:49:07.58 ID:m0rwQM4g.net
- >>41が何を意図しているか分かるわけないだろう
- 44 :デフォルトの名無しさん:2017/12/02(土) 13:43:40.72 ID:0GCrzYMu.net
- スペースを入れろってだけの話では
- 45 :デフォルトの名無しさん:2017/12/02(土) 13:50:50.68 ID:XRYOyseR.net
- 今年もクリスマスイブに何か発表ある?
- 46 :デフォルトの名無しさん:2017/12/03(日) 03:01:00.42 ID:IGABZHMD.net
- >>39
さんくす
- 47 :デフォルトの名無しさん:2017/12/03(日) 12:36:05.29 ID:76TDWePk.net
- Ruby2.5
- 48 :デフォルトの名無しさん:2017/12/05(火) 03:46:28.43 ID:XHolF61u.net
- Rubyの型システムは早ければ2020年のオリンピック頃にお目見えか
どんな物になるんだろう
- 49 :デフォルトの名無しさん:2017/12/05(火) 16:37:09.15 ID:tba/yJ/+.net
- Rが楽しくて勝手にやってるんだが
rubyはどうやって勉強すればいいんだ
>>2の自分に合うのを買えばいいのかな?
- 50 :デフォルトの名無しさん:2017/12/05(火) 16:48:30.13 ID:lVtWIMct.net
- 他言語の経験あるなら
プロを目指す人のためのRuby入門という入門書が新しくておすすめ(出たばかり)
- 51 :デフォルトの名無しさん:2017/12/05(火) 17:04:59.24 ID:04pPds2q.net
- 本は買った後、
分からない事があれば、ここで環境とコード示して聞けば良いよ
誰かが答えてくれるから
- 52 :デフォルトの名無しさん:2017/12/05(火) 23:05:42.39 ID:bv7GN3wK.net
- たのしいRuby 第5版、2016
R を知ってるなら、これも読む。
みんなのPython 第4版、2017
この2冊は、表裏一体。
ただし、先に「たのしい」から読むこと
- 53 :デフォルトの名無しさん:2017/12/06(水) 00:16:07.55 ID:Nuv0O2Zm.net
- >>50-52
3冊チェックしてみました
webのサンプルを読んで書店で見てみます
ありがとうございました
- 54 :デフォルトの名無しさん:2017/12/06(水) 04:53:57.53 ID:j5o9izkC.net
- >荒らしを構ってる奴は荒らし本人の自演だから、構ったりせず見つけ次第、自演を指摘して排除すること
>荒らし叩きに見せて持論を言い出す奴も荒らし本人だから、これも自演を指摘して排除すること
>他の言語について話そうとする奴は、その言語スレから排除されてRubyスレに流れ着いた荒らしだから、これも構ったりせず元の言語スレへ誘導すること
- 55 :デフォルトの名無しさん:2017/12/06(水) 16:47:29.82 ID:AVh4r46K.net
- Effective RubyがKindleで半額セール中(1728円)
- 56 :デフォルトの名無しさん:2017/12/06(水) 21:44:56.35 ID:sdwtDf9T.net
- RubyでOpenGLの書籍も来い
- 57 :デフォルトの名無しさん:2017/12/06(水) 21:46:49.21 ID:vDrxBWCE.net
- 読者100人ぐらいしかいなさそう
- 58 :デフォルトの名無しさん:2017/12/06(水) 21:48:41.70 ID:Q8AsPyaZ.net
- まずRubyが遅いから
画像処理やろうって人が少ない
- 59 :デフォルトの名無しさん:2017/12/06(水) 21:57:47.76 ID:j5o9izkC.net
- 3Dモデリングなら速度要らなさそう
あと可視化の分野辺り
というか、ゲームじゃなければ速度いらないだろ
- 60 :デフォルトの名無しさん:2017/12/06(水) 22:11:16.54 ID:sdwtDf9T.net
- 3Dモデルというか、OpenGL学ぶのに最適だよRubyは
教材として出せば良いのに
商材として出すならMMDやXといった各種3Dモデル形式に対応した3DモデリングソフトをRubyで書いてCD付録として書籍につければ良い
そのRubyコード目当てに買う人は多いだろうし、Rubyで書いてるから書き換えやすく、改造もしやすい
- 61 :デフォルトの名無しさん:2017/12/06(水) 23:53:59.61 ID:9Cl2Q0EY.net
- 残念ながらそれはない
Rubyはまともに使うつもりないなら学習のオーバーヘッドが大きすぎる
今ならJavaScriptとWebGLでいいよ
- 62 :デフォルトの名無しさん:2017/12/07(木) 02:09:30.99 ID:5ii6i5Is.net
- おまえがネガキャンしても無意味だ
- 63 :デフォルトの名無しさん:2017/12/07(木) 02:49:15.45 ID:mIJMiEiv.net
- openglか
確かラッパーのgemがいくつかあるんだよな
初期のでglVertexPointerやらglColorPointerやら使って三角形を描画するとかやった記憶がある
今のgemはVBOやシェーダは使えるのか?
- 64 :デフォルトの名無しさん:2017/12/07(木) 03:59:25.76 ID:GxHPFgmw.net
- 3Dモデラーソフトのソースが付くなら欲しい
ゼロから書くのは面倒だけど既にある程度完成しているなら、
自分で足りない所だけ追加して楽できる
- 65 :デフォルトの名無しさん:2017/12/07(木) 16:46:28.15 ID:al0lHo8n.net
- >>63
gemをちょっとググってみたけどopengl4.xに対応しててそれ用の関数もある
shaderがどこまで出来るかは自己の環境次第なんじゃね?
まあ、最近はopengl4.x使える環境がデフォだけど
- 66 :デフォルトの名無しさん:2017/12/07(木) 22:06:15.41 ID:mIJMiEiv.net
- みんな、Rubyのリファクタリングツール使ってる?
今まで手動でやってきたんだけど、何かお勧めツールかgemある?
- 67 :デフォルトの名無しさん:2017/12/07(木) 22:18:59.22 ID:h0N877cC.net
- rubymine
- 68 :デフォルトの名無しさん:2017/12/07(木) 22:35:19.73 ID:p8nuhjj6.net
- rspec
rubyは静的解析が極めて困難な言語であり、リファクタリングを機械的に安全に行うことはできない
テストをちゃんと書いておいて、実際に繰り返し動かしながら結果的に元の挙動が再現されるように慎重に行う必要がある
- 69 :デフォルトの名無しさん:2017/12/07(木) 23:56:42.24 ID:kyxQutt+.net
- テストはバグが有ることを証明することはできるが
バグがないことを証明することはできない
故にいくらテストを書いても安心できない
- 70 :デフォルトの名無しさん:2017/12/08(金) 00:13:02.65 ID:AScviHBw.net
- お前のツールでリファクタリングしたらバグったやないか客の業務止まっとるんやぞどないしてくれんねんボケエ!!!
こうなるのが目に見えてるんだからツール作る方もやりたくないわな
静的リファクタリングを動的型言語に求めるのは筋違い
- 71 :デフォルトの名無しさん:2017/12/08(金) 00:48:46.54 ID:yFCS8xkj.net
- また言ってるのかこいつ
はやく精神科に見てもらえ
ruby会議16か15でリファクタリングのgemのOHPあったけど、
ぐぐったら出てくるから見てみ
- 72 :デフォルトの名無しさん:2017/12/08(金) 01:08:24.02 ID:ra4CwiYK.net
- >>2 のリファクタリング:Rubyエディションを読めばわかるけど、
ツールで自動化するのは問題なく、むしろポイントはツールの使い勝手とか連携させるとかの方
リファクタリング機能自体にはあんまり差異は無い
例の自演荒らしはそれを知らずに静的云々とか煽ってるけど
- 73 :デフォルトの名無しさん:2017/12/08(金) 01:33:37.38 ID:AScviHBw.net
- >>72
さすがにリファクタリングに関して静的型と差異がないというのは贔屓目に見ても無理があるわ
例えばクラスのメソッドのリネームを安全に行うには、そのメソッドを使っている箇所を全て正確に特定しなければならない
静的型なら造作もないことだけど、ちょっと頭使えばわかることだが動的型では原理的に不可能
- 74 :デフォルトの名無しさん:2017/12/08(金) 01:35:02.78 ID:T1izFLQz.net
- Ruby技術者試験受けるよ!
アドバイスとかあったらお願いします
ちなみに、今年中にsilver受験するつもり
- 75 :デフォルトの名無しさん:2017/12/08(金) 01:36:07.26 ID:AScviHBw.net
- あと、Rubyに限ったことじゃないけどスクリプト言語は識別子を短くする傾向があるから、
単純にgrepで抽出するのも困難を極める
もちろん静的型では一文字メソッドだろうと全く問題ないけどね
- 76 :デフォルトの名無しさん:2017/12/08(金) 02:01:33.10 ID:AScviHBw.net
- 何が言いたいかというと、リファクタリングにツールの力を借りたくなるようなものを動的型で作るなら必ずテストを書けってことだ
絶対に安全というわけではないが気休めにはなる
テストのない大規模なRubyのソースは単なる糞の山であり、確実にメンテ不能に陥る
- 77 :デフォルトの名無しさん:2017/12/08(金) 02:24:45.46 ID:DD2Dk6IR.net
- strArray = %w(a b c a c)
strHash = strArray.each_with_object(Hash.new(0)) { |str, h| h[str] += 1 }
p strHash #=> {"a"=>2, "b"=>1, "c"=>2}
使われている文字が、一番多いもの(複数可)と、その回数を求める。
ひとまず、Hash に使われている回数を入れたけど、
ここから最大のもの、a, c の、2回を求めるには、どうすれば良い?
- 78 :デフォルトの名無しさん:2017/12/08(金) 02:44:53.49 ID:yFCS8xkj.net
- >ID:AScviHBw
連投の癖から見ても例のあいつだな
話題すりかえれると思ってんのかゴミ
- 79 :デフォルトの名無しさん:2017/12/08(金) 02:47:13.84 ID:cpGshdOM.net
- yFCS8xkjは例のアイツを記憶している
それぐらい例のアイツを意識しまくっている
- 80 :デフォルトの名無しさん:2017/12/08(金) 02:49:26.53 ID:ra4CwiYK.net
- >>79
自演バレてるぞ
- 81 :デフォルトの名無しさん:2017/12/08(金) 02:52:47.39 ID:cpGshdOM.net
- 自演じゃねーしw
例え自演だとしても、お前が例のアイツを忘れられない
ってのは事実だろう?だってそれっぽい書き込みをみたら
思い出してしまったんだし。
俺はどうでもいい人のことなんか覚えられないなぁw
- 82 :デフォルトの名無しさん:2017/12/08(金) 03:03:28.70 ID:M1BysAXW.net
- 今日の荒らしのIDはID:AScviHBwとID:cpGshdOMか
もっとレス稼げよカス
- 83 :デフォルトの名無しさん:2017/12/08(金) 03:05:51.79 ID:cpGshdOM.net
- そういや上の方でrspecって名前が出てたけど、
rspecの使い方をマスターするのは重要だな。
contextとlet、この2つの正しい使い方は
ちゃんと理解しないといけない
たんなるグループわけとか変数の代わりではない
- 84 :デフォルトの名無しさん:2017/12/08(金) 03:11:55.00 ID:cpGshdOM.net
- 少しヒントを出すか。
context(describe)はテスト対象のコードが複雑なら遠慮なくネストすること
もちろんテスト対象のコードはなるべくシンプルにするものだから
その場合はテストコードもcontextのネストも深くはならないのだが、
条件分岐があればそれに対応してcontextもネストさせてよい
そしてletは名前を遠慮なくかぶらせていい。
一般的には外側のスコープと同じ名前の変数を作るのは良くないことだが
describeとcontextのネストの中で、外側と同じ名前の変数は遠慮なく作っていい。
というか外側のletはデフォルト値、内側のletはそれを上書きする。そういう扱い
- 85 :デフォルトの名無しさん:2017/12/08(金) 03:18:31.95 ID:ra4CwiYK.net
- いつもネガキャンがバレたら即自演荒らし始めるけど、
もしかして何かの病気?
- 86 :デフォルトの名無しさん:2017/12/08(金) 03:20:06.76 ID:cpGshdOM.net
- いつもと違う=別人 という発想に至れないのが残念な人だなw
思い込みハゲしいぜハゲ
- 87 :デフォルトの名無しさん:2017/12/08(金) 03:25:08.37 ID:JkPU7Xcj.net
- >>77
x = strArray.uniq.group_by{|e| strArray.count(e)}
# 最大値
m = x.keys.max # => 2
# 最大値を返す要素
x[m]. #=> ["a", "c"]
- 88 :デフォルトの名無しさん:2017/12/08(金) 03:25:58.22 ID:ra4CwiYK.net
- ここまで「ネガキャンをしていたのは自分です」と告白してくれる人も珍しい
こんな正直な人なかなかいない
連投する癖は相変わらずウザイけど
- 89 :デフォルトの名無しさん:2017/12/08(金) 03:31:15.22 ID:cpGshdOM.net
- >>88
ネガキャンしてたのはお前だろw
何も言わないなら図星だし
必死に否定するのは怪しい
正直に答えろ
という理屈で語らないでくださいよw
俺ネガキャンしてないし
- 90 :デフォルトの名無しさん:2017/12/08(金) 03:51:22.77 ID:ra4CwiYK.net
- いつもネガキャンがバレたら即自演荒らし始めるけど、
もしかして何かの病気?
- 91 :デフォルトの名無しさん:2017/12/08(金) 03:52:53.67 ID:cpGshdOM.net
- だから誰と間違ってんだよw
- 92 :デフォルトの名無しさん:2017/12/08(金) 04:13:17.16 ID:uDZwOU33.net
- ネガキャン失敗を晒しあげ
- 93 :デフォルトの名無しさん:2017/12/08(金) 05:21:46.31 ID:ra4CwiYK.net
- >>91
お前って行動を振り返る癖がないんだな
墓穴を掘るのは別に止めないけど、病気ならはやく病院に行った方が良いよ
- 94 :デフォルトの名無しさん:2017/12/08(金) 05:27:36.83 ID:T81djMMQ.net
- 毎回同じようなこと繰り返してるけど、今のrubyで問題ないと思ってるやつのほうが相当やばいと思うけどね
- 95 :デフォルトの名無しさん:2017/12/08(金) 05:33:53.21 ID:uDZwOU33.net
- 荒らし「毎回同じようなこと繰り返してるけど、今のrubyで問題ないと思ってるやつのほうが相当やばいと思うけどね」(荒す口実にしないとは言っていない)
- 96 :77:2017/12/08(金) 06:05:43.38 ID:DD2Dk6IR.net
- strArray = %w(a b c a c)
strHash = strArray.each_with_object(Hash.new(0)) { |str, h| h[str] += 1 }
p strHash #=> {"a"=>2, "b"=>1, "c"=>2}
maxCount = strHash.values.max #=> 2
p strHash.select {|k, v| v == maxCount } #=> {"a"=>2, "c"=>2}
key, rassoc を使うと、最初に一致した、1つしか返さない。
p strHash.key(maxCount) #=> "a"
p strHash.rassoc(maxCount) #=> ["a", 2]
>>87
ありがとう。その方法でも出来ますね
- 97 :デフォルトの名無しさん:2017/12/08(金) 06:34:00.66 ID:T81djMMQ.net
- 今度は俺が荒らし扱いか
めんどくさいスレだな
- 98 :デフォルトの名無しさん:2017/12/08(金) 06:34:11.97 ID:ra4CwiYK.net
- 毎回繰り返されているのはRubyに関係無い荒らしの自爆劇なんだよな
- 99 :デフォルトの名無しさん:2017/12/08(金) 06:41:08.45 ID:61INIGrw.net
- 単発でネガキャン繰り返してた奴=自演しながら静的静的言い続けてる荒らし
は確定か
次、荒らしがやりそうなのは
荒らしをスルーして書き込みさせてたIDでの"加勢"かな?
- 100 :デフォルトの名無しさん:2017/12/08(金) 07:38:48.25 ID:AScviHBw.net
- 少なくともID:AScviHBwはRubyと関係ないことは言ってないし別に間違ったことも言ってないでしょ
静的型の方がリファクタリングしやすい、くらいMatzでも発言したことあるぞ
さすがにこんなのまで荒らし扱いするのはこのスレくらいだよ
総レス数 1002
287 KB
新着レスの表示
掲示板に戻る
全部
前100
次100
最新50
read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★