2ちゃんねる スマホ用 ■掲示板に戻る■ 全部 1- 最新50    

■ このスレッドは過去ログ倉庫に格納されています

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 ★