X



Ruby 初心者スレッド Part 62
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
垢版 |
2017/11/24(金) 00:35:29.31ID:rLZHdQ3Q
プログラミング言語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/
0002デフォルトの名無しさん
垢版 |
2017/11/24(金) 00:36:08.95ID:rLZHdQ3Q
たのしいRuby 第5版、2016

Effective Ruby、2015

メタプログラミング Ruby 第2版、2015

Rubyのしくみ、2014

改訂3版 基礎 Ruby on Rails、黒田努・佐藤和人、2015

リファクタリング:Rubyエディション、2010
0003デフォルトの名無しさん
垢版 |
2017/11/24(金) 01:29:56.00ID:rLZHdQ3Q
開発環境

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
0004デフォルトの名無しさん
垢版 |
2017/11/24(金) 01:46:47.26ID:rLZHdQ3Q
RDEのデバッグ機能を使う場合、設定においてデバッグオプションを「-r debug2」から「-r debug」と書き換えて、
ruby付属のdebug.rbを使うようにすること
RDE付属のdebug2.rbはruby1.8用のスクリプトのため、現在のrubyのversionには使えません
0007デフォルトの名無しさん
垢版 |
2017/11/26(日) 20:55:02.73ID:zBIai8/a
前スレにも書いたけど中級者上級者向けのRuby本が必要だと思う
それもruby界隈で一般化された題材じゃなくてまだ広く知れ渡っていない専門的な題材を扱った本を
Openglとか分散VMとか大規模演算rubyとか他にもこういう題材は結構あると思う
0008デフォルトの名無しさん
垢版 |
2017/11/26(日) 21:55:29.31ID:OhY/q4lK
現段階で専門的な題材の書籍を出しても赤字になるだけで厳しいと思う
だったらまだ一般的なプログラミング雑誌で連載する方が見込みはあるんじゃないかなあ
あとは教育機関・研究機関における浸透度合いを高めるところも攻めた方がいい
それと会社のお偉いさんはRubyの案件をさらに増やして

とりあえず日本で有人月面着陸を計画してるからmrubyも載せようぜ
0009デフォルトの名無しさん
垢版 |
2017/11/26(日) 22:38:23.64ID:e8MWK5Ug
初心者向け書籍で裾野を広げまくったからニーズはあるだろ
いわば教科書を読んで基礎を学んで、それらを試せる応用分野をみんな探している所
Rubyと+αの専門性の高いものを出せば、目的はないけど何か読みたいって層にはドンピシャで来る
web系はRailsやWEBrickでこれからも出るし、科学計算や3Dとか教養シリーズみたいな感じで出せば全然いける
0010デフォルトの名無しさん
垢版 |
2017/11/26(日) 22:48:35.39ID:LT7w1DpA
データ分析系は
Pythonが流行してるから
そっちで本出すだろ

Rubyだとライブラリと
速度がネックになるから
0011デフォルトの名無しさん
垢版 |
2017/11/26(日) 23:21:25.25ID:azT4+Y0L
>>9
cadをやってるから、物理演算とかシミュレート系をだして欲しい
あと、組込み向けにソースコンパイルやらRuby-C間の解説とか
0012デフォルトの名無しさん
垢版 |
2017/11/26(日) 23:44:18.39ID:e8MWK5Ug
>>10
学んだRubyで何かする本が求められていると言っているのに、
何故Pythonが出てくるんだ?
0013デフォルトの名無しさん
垢版 |
2017/11/27(月) 00:33:15.55ID:o0pIkOSz
rubyコンとかRuby勉強会とかどんな感じ?
マシンスペック的にはどんなのもっていけばいい?
0014デフォルトの名無しさん
垢版 |
2017/11/27(月) 01:59:56.02ID:x+zk8UEy
開発マシンの、CPU は i7、メモリは最低でも 8GB(16GB が望ましい)
Windows 10 pro
WSL・仮想OS で、Linux

Mac の人も多い
0015デフォルトの名無しさん
垢版 |
2017/11/27(月) 07:55:32.25ID:gt4bCosJ
>>12
Rubyはrails以外に使い道無いから他の事したいなら他の言語覚えろよ
0016デフォルトの名無しさん
垢版 |
2017/11/27(月) 12:11:21.22ID:W0wAPtjw
>荒らしを構ってる奴は荒らし本人の自演だから、構ったりせず見つけ次第、自演を指摘して排除すること
>荒らし叩きに見せて持論を言い出す奴も荒らし本人だから、これも自演を指摘して排除すること
>他の言語について話そうとする奴は、その言語スレから排除されてRubyスレに流れ着いた荒らしだから、これも構ったりせず元の言語スレへ誘導すること
0017デフォルトの名無しさん
垢版 |
2017/11/27(月) 13:14:45.58ID:o0pIkOSz
>>15
荒らし行為をやり続けてPythonスレから追い出されたの?
ここじゃ病気は治せないから病院に行ったほうがいいよ

>>14
やっぱり結構なマシンを持って行くんだね
ARMプロセッサ積んだボードにrubyをクロスコンパイルして入れた自作のマシンとか考えてたけど、
低スペックでもWinノートPCを買っておいた方が良いか
0018デフォルトの名無しさん
垢版 |
2017/11/27(月) 18:50:34.20ID:agUtcdpR
最近の荒らしはやり方が雑だよな
殆ど単発の自演しか涌かないし
出て来ても「はいはい、荒らしてますよ〜」みたいな嫌々やらされてる感しかない
0019デフォルトの名無しさん
垢版 |
2017/11/27(月) 19:23:05.97ID:x+zk8UEy
Ruby は、Linux 必須だから、WSL・仮想OS ・Docker などが必須

2つのOS を動かすから、メモリは最大限積む必要があり、
CPU はi7 にすると、16GB まで積める。
i3, i5 だと、8GBまでかな?

それと、たいていのプログラム言語の本の動作条件が、Windows Pro

一般的に、開発用PC は、高スペック。
画面も、フルHD 以上
0021デフォルトの名無しさん
垢版 |
2017/11/27(月) 21:44:22.84ID:agUtcdpR
自演も中途半端
もうただ単に定型文を打つだけで満足してて、
荒れたかどうかも気にしなくなってるんだよな
夏休みの宿題やらされてる子供かよ
0022デフォルトの名無しさん
垢版 |
2017/11/27(月) 22:51:47.97ID:rAG/Bhsm
「また自演した」「このスレには自演が居るから」「このスレには自演がいます!いますよ!ほら!」としか書くことがなくなったんだろうなと思う
本当に他人から貰ったレスというのは自分がいちばんよくわかってて、そしてそれは本レスにおいても自演指摘レスにおいてもおそらく極めて少ない
住人の冷めた態度が効いてると表現することはできなくもないが
0023デフォルトの名無しさん
垢版 |
2017/11/27(月) 23:02:26.98ID:SI4QCwP5
静的型マンセーの粘着がいるのは確かだが、何でもかんでも自演自演言ってるやつもちょっと病的だよな
ちょっとネガティブな発言しただけなのに荒らしの自演認定されたことあるし
0024デフォルトの名無しさん
垢版 |
2017/11/27(月) 23:32:26.87ID:W0wAPtjw
上の人は荒らしだからスルーでお願いします

>荒らしを構ってる奴は荒らし本人の自演だから、構ったりせず見つけ次第、自演を指摘して排除すること
>荒らし叩きに見せて持論を言い出す奴も荒らし本人だから、これも自演を指摘して排除すること
>他の言語について話そうとする奴は、その言語スレから排除されてRubyスレに流れ着いた荒らしだから、これも構ったりせず元の言語スレへ誘導すること
0026デフォルトの名無しさん
垢版 |
2017/11/27(月) 23:53:05.49ID:rAG/Bhsm
>>23
スレ住人が過去に何度か同調したことがあるのだが、
そのせいで自分が こ れ 以 降 何 を し て も 正義で多数派で「こちら側」に居れると勘違いしてしまったらしいのだ
いつか自分が「あちら側」に追いやられていたことに気づく日がくればいいと思う
0027デフォルトの名無しさん
垢版 |
2017/11/28(火) 00:02:17.19ID:1+J/qigr
そうやって嫌々やってるからまたボロを出す
22:51:47.97
23:02:26.98
こんだけ時間くっつけて発言すればバカにさえ自演だってわかる
しっかり頭を働かせろ

ゆとり世代か何かか?
0028デフォルトの名無しさん
垢版 |
2017/11/28(火) 00:03:55.96ID:qPKDeu2+
だから、まあ、我々はふたつの荒らしを並行同時にあしらいながら進まねばならなくなっている
「やってはいけないこと」「さわってはいけないもの」は倍以上に増え、発言の困難性は以前より遥かに増した
難儀なことだ
0029デフォルトの名無しさん
垢版 |
2017/11/28(火) 00:07:19.20ID:TcvLN2I4
完動する事を確認しているDLライブラリ使ったスクリプトを、思いつきでrubyに付属のdebug.rbで診たら、
dllの関数呼び出しの所で`unknown symbol "関数名"' (RuntimeError)がでてなかなかブレークポイントまで進めません
一部の止まるエラーを抑えたり、スクリプト上の一定部分だけデバッガー無効化したりすることは可能ですか?
0030デフォルトの名無しさん
垢版 |
2017/11/28(火) 00:39:00.64ID:yd/D5jJi
>>28は俺らを辟易させることが目的らしい
でもそれって俺等がいつも通りに荒らしをバカにしながら会話し続けたらどうするの?
いつまでもあの騙せそうにない自演でレスを稼いでくれる?
0032デフォルトの名無しさん
垢版 |
2017/11/29(水) 04:08:52.30ID:zX4fkY5X
debug.rbはkernelのset_trace_funcで登録したprocを、デバッギーの行毎に呼び出してる
だから呼び出されたくない行は登録するproc内でif文を使って分岐させてやれば良い

やってることはそれ程難しくないし、debug.rbに10行程度書き加えれば出来るよ
0033デフォルトの名無しさん
垢版 |
2017/11/29(水) 18:32:32.11ID:MwOAAXQr
>>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
}
0034デフォルトの名無しさん
垢版 |
2017/11/29(水) 18:44:22.06ID:MwOAAXQr
下のに書き換え、
@@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
}
0035デフォルトの名無しさん
垢版 |
2017/11/29(水) 18:51:55.61ID:MwOAAXQr
デバッグするソースファイルの最初の方に以下を書き加え、debugをスキップしたいファイルをignorefに、行をRangeかArrayでignorelにいれる
if defined? DEBUGGER__
ignoref = __FILE__
ignorel = []# 27..48
DEBUGGER__.ignore_[ignoref] = ignorel
end

debugのスクリプトそのものを書き換えるんじゃなくて、
複製して別名をつけたものを書き換えて使ったほうが良いよ
0036デフォルトの名無しさん
垢版 |
2017/11/30(木) 01:37:59.97ID:XY2yKXS8
Rubyでopenglのシェーダーを扱った本、技術評論社辺りから出してくれないかな
こういうのこそRuby向けだよ
0037デフォルトの名無しさん
垢版 |
2017/11/30(木) 13:11:26.74ID:dNsMGYhb
OpenGL自体のgemとかはそろってるから、
ミクミク互換やXファイル互換のソースを添付して出せば売れそうだけどな
0038デフォルトの名無しさん
垢版 |
2017/12/01(金) 01:22:55.57ID:UulhXT9P
# frozen_string_literal: false
ソースの最初に上のように書かれてるのを見つけたけどどいう意味?
他にもこういうのあるの?
0039デフォルトの名無しさん
垢版 |
2017/12/01(金) 04:44:53.26ID:zZy3ktkC
>>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>'
0041デフォルトの名無しさん
垢版 |
2017/12/02(土) 12:25:58.45ID:S9pj625T
二項演算子型のシンタックスシュガーって場合によっては意図したとおりに動いてくれないんだね

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
0042デフォルトの名無しさん
垢版 |
2017/12/02(土) 12:28:39.60ID:S9pj625T
pi %1 #=> unknown type of %string
じゃなくて
pi %1 #=> 0.14159265358979312
だった
定数だとうまくいかない模様
0045デフォルトの名無しさん
垢版 |
2017/12/02(土) 13:50:50.68ID:XRYOyseR
今年もクリスマスイブに何か発表ある?
0046デフォルトの名無しさん
垢版 |
2017/12/03(日) 03:01:00.42ID:IGABZHMD
>>39
さんくす
0048デフォルトの名無しさん
垢版 |
2017/12/05(火) 03:46:28.43ID:XHolF61u
Rubyの型システムは早ければ2020年のオリンピック頃にお目見えか
どんな物になるんだろう
0049デフォルトの名無しさん
垢版 |
2017/12/05(火) 16:37:09.15ID:tba/yJ/+
Rが楽しくて勝手にやってるんだが
rubyはどうやって勉強すればいいんだ
>>2の自分に合うのを買えばいいのかな?
0050デフォルトの名無しさん
垢版 |
2017/12/05(火) 16:48:30.13ID:lVtWIMct
他言語の経験あるなら
プロを目指す人のためのRuby入門という入門書が新しくておすすめ(出たばかり)
0051デフォルトの名無しさん
垢版 |
2017/12/05(火) 17:04:59.24ID:04pPds2q
本は買った後、
分からない事があれば、ここで環境とコード示して聞けば良いよ
誰かが答えてくれるから
0052デフォルトの名無しさん
垢版 |
2017/12/05(火) 23:05:42.39ID:bv7GN3wK
たのしいRuby 第5版、2016

R を知ってるなら、これも読む。
みんなのPython 第4版、2017

この2冊は、表裏一体。
ただし、先に「たのしい」から読むこと
0054デフォルトの名無しさん
垢版 |
2017/12/06(水) 04:53:57.53ID:j5o9izkC
>荒らしを構ってる奴は荒らし本人の自演だから、構ったりせず見つけ次第、自演を指摘して排除すること
>荒らし叩きに見せて持論を言い出す奴も荒らし本人だから、これも自演を指摘して排除すること
>他の言語について話そうとする奴は、その言語スレから排除されてRubyスレに流れ着いた荒らしだから、これも構ったりせず元の言語スレへ誘導すること
0056デフォルトの名無しさん
垢版 |
2017/12/06(水) 21:44:56.35ID:sdwtDf9T
RubyでOpenGLの書籍も来い
0059デフォルトの名無しさん
垢版 |
2017/12/06(水) 21:57:47.76ID:j5o9izkC
3Dモデリングなら速度要らなさそう
あと可視化の分野辺り


というか、ゲームじゃなければ速度いらないだろ
0060デフォルトの名無しさん
垢版 |
2017/12/06(水) 22:11:16.54ID:sdwtDf9T
3Dモデルというか、OpenGL学ぶのに最適だよRubyは
教材として出せば良いのに
商材として出すならMMDやXといった各種3Dモデル形式に対応した3DモデリングソフトをRubyで書いてCD付録として書籍につければ良い
そのRubyコード目当てに買う人は多いだろうし、Rubyで書いてるから書き換えやすく、改造もしやすい
0061デフォルトの名無しさん
垢版 |
2017/12/06(水) 23:53:59.61ID:9Cl2Q0EY
残念ながらそれはない
Rubyはまともに使うつもりないなら学習のオーバーヘッドが大きすぎる
今ならJavaScriptとWebGLでいいよ
0062デフォルトの名無しさん
垢版 |
2017/12/07(木) 02:09:30.99ID:5ii6i5Is
おまえがネガキャンしても無意味だ
0063デフォルトの名無しさん
垢版 |
2017/12/07(木) 02:49:15.45ID:mIJMiEiv
openglか
確かラッパーのgemがいくつかあるんだよな
初期のでglVertexPointerやらglColorPointerやら使って三角形を描画するとかやった記憶がある
今のgemはVBOやシェーダは使えるのか?
0064デフォルトの名無しさん
垢版 |
2017/12/07(木) 03:59:25.76ID:GxHPFgmw
3Dモデラーソフトのソースが付くなら欲しい
ゼロから書くのは面倒だけど既にある程度完成しているなら、
自分で足りない所だけ追加して楽できる
0065デフォルトの名無しさん
垢版 |
2017/12/07(木) 16:46:28.15ID:al0lHo8n
>>63
gemをちょっとググってみたけどopengl4.xに対応しててそれ用の関数もある
shaderがどこまで出来るかは自己の環境次第なんじゃね?
まあ、最近はopengl4.x使える環境がデフォだけど
0066デフォルトの名無しさん
垢版 |
2017/12/07(木) 22:06:15.41ID:mIJMiEiv
みんな、Rubyのリファクタリングツール使ってる?
今まで手動でやってきたんだけど、何かお勧めツールかgemある?
0068デフォルトの名無しさん
垢版 |
2017/12/07(木) 22:35:19.73ID:p8nuhjj6
rspec
rubyは静的解析が極めて困難な言語であり、リファクタリングを機械的に安全に行うことはできない
テストをちゃんと書いておいて、実際に繰り返し動かしながら結果的に元の挙動が再現されるように慎重に行う必要がある
0069デフォルトの名無しさん
垢版 |
2017/12/07(木) 23:56:42.24ID:kyxQutt+
テストはバグが有ることを証明することはできるが
バグがないことを証明することはできない
故にいくらテストを書いても安心できない
0070デフォルトの名無しさん
垢版 |
2017/12/08(金) 00:13:02.65ID:AScviHBw
お前のツールでリファクタリングしたらバグったやないか客の業務止まっとるんやぞどないしてくれんねんボケエ!!!
こうなるのが目に見えてるんだからツール作る方もやりたくないわな
静的リファクタリングを動的型言語に求めるのは筋違い
0071デフォルトの名無しさん
垢版 |
2017/12/08(金) 00:48:46.54ID:yFCS8xkj
また言ってるのかこいつ
はやく精神科に見てもらえ


ruby会議16か15でリファクタリングのgemのOHPあったけど、
ぐぐったら出てくるから見てみ
0072デフォルトの名無しさん
垢版 |
2017/12/08(金) 01:08:24.02ID:ra4CwiYK
>>2 のリファクタリング:Rubyエディションを読めばわかるけど、
ツールで自動化するのは問題なく、むしろポイントはツールの使い勝手とか連携させるとかの方
リファクタリング機能自体にはあんまり差異は無い
例の自演荒らしはそれを知らずに静的云々とか煽ってるけど
0073デフォルトの名無しさん
垢版 |
2017/12/08(金) 01:33:37.38ID:AScviHBw
>>72
さすがにリファクタリングに関して静的型と差異がないというのは贔屓目に見ても無理があるわ
例えばクラスのメソッドのリネームを安全に行うには、そのメソッドを使っている箇所を全て正確に特定しなければならない
静的型なら造作もないことだけど、ちょっと頭使えばわかることだが動的型では原理的に不可能
0074デフォルトの名無しさん
垢版 |
2017/12/08(金) 01:35:02.78ID:T1izFLQz
Ruby技術者試験受けるよ!
アドバイスとかあったらお願いします
ちなみに、今年中にsilver受験するつもり
0075デフォルトの名無しさん
垢版 |
2017/12/08(金) 01:36:07.26ID:AScviHBw
あと、Rubyに限ったことじゃないけどスクリプト言語は識別子を短くする傾向があるから、
単純にgrepで抽出するのも困難を極める
もちろん静的型では一文字メソッドだろうと全く問題ないけどね
0076デフォルトの名無しさん
垢版 |
2017/12/08(金) 02:01:33.10ID:AScviHBw
何が言いたいかというと、リファクタリングにツールの力を借りたくなるようなものを動的型で作るなら必ずテストを書けってことだ
絶対に安全というわけではないが気休めにはなる
テストのない大規模なRubyのソースは単なる糞の山であり、確実にメンテ不能に陥る
0077デフォルトの名無しさん
垢版 |
2017/12/08(金) 02:24:45.46ID:DD2Dk6IR
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回を求めるには、どうすれば良い?
0078デフォルトの名無しさん
垢版 |
2017/12/08(金) 02:44:53.49ID:yFCS8xkj
>ID:AScviHBw
連投の癖から見ても例のあいつだな
話題すりかえれると思ってんのかゴミ
0079デフォルトの名無しさん
垢版 |
2017/12/08(金) 02:47:13.84ID:cpGshdOM
yFCS8xkjは例のアイツを記憶している
それぐらい例のアイツを意識しまくっている
0081デフォルトの名無しさん
垢版 |
2017/12/08(金) 02:52:47.39ID:cpGshdOM
自演じゃねーしw

例え自演だとしても、お前が例のアイツを忘れられない
ってのは事実だろう?だってそれっぽい書き込みをみたら
思い出してしまったんだし。

俺はどうでもいい人のことなんか覚えられないなぁw
0083デフォルトの名無しさん
垢版 |
2017/12/08(金) 03:05:51.79ID:cpGshdOM
そういや上の方でrspecって名前が出てたけど、
rspecの使い方をマスターするのは重要だな。

contextとlet、この2つの正しい使い方は
ちゃんと理解しないといけない
たんなるグループわけとか変数の代わりではない
0084デフォルトの名無しさん
垢版 |
2017/12/08(金) 03:11:55.00ID:cpGshdOM
少しヒントを出すか。

context(describe)はテスト対象のコードが複雑なら遠慮なくネストすること
もちろんテスト対象のコードはなるべくシンプルにするものだから
その場合はテストコードもcontextのネストも深くはならないのだが、
条件分岐があればそれに対応してcontextもネストさせてよい

そしてletは名前を遠慮なくかぶらせていい。
一般的には外側のスコープと同じ名前の変数を作るのは良くないことだが
describeとcontextのネストの中で、外側と同じ名前の変数は遠慮なく作っていい。
というか外側のletはデフォルト値、内側のletはそれを上書きする。そういう扱い
0085デフォルトの名無しさん
垢版 |
2017/12/08(金) 03:18:31.95ID:ra4CwiYK
いつもネガキャンがバレたら即自演荒らし始めるけど、
もしかして何かの病気?
0086デフォルトの名無しさん
垢版 |
2017/12/08(金) 03:20:06.76ID:cpGshdOM
いつもと違う=別人 という発想に至れないのが残念な人だなw
思い込みハゲしいぜハゲ
0087デフォルトの名無しさん
垢版 |
2017/12/08(金) 03:25:08.37ID:JkPU7Xcj
>>77
x = strArray.uniq.group_by{|e| strArray.count(e)}
# 最大値
m = x.keys.max # => 2
# 最大値を返す要素
x[m]. #=> ["a", "c"]
0088デフォルトの名無しさん
垢版 |
2017/12/08(金) 03:25:58.22ID:ra4CwiYK
ここまで「ネガキャンをしていたのは自分です」と告白してくれる人も珍しい
こんな正直な人なかなかいない

連投する癖は相変わらずウザイけど
0089デフォルトの名無しさん
垢版 |
2017/12/08(金) 03:31:15.22ID:cpGshdOM
>>88
ネガキャンしてたのはお前だろw

何も言わないなら図星だし
必死に否定するのは怪しい
正直に答えろ

という理屈で語らないでくださいよw
俺ネガキャンしてないし
0090デフォルトの名無しさん
垢版 |
2017/12/08(金) 03:51:22.77ID:ra4CwiYK
いつもネガキャンがバレたら即自演荒らし始めるけど、
もしかして何かの病気?
0092デフォルトの名無しさん
垢版 |
2017/12/08(金) 04:13:17.16ID:uDZwOU33
ネガキャン失敗を晒しあげ
0093デフォルトの名無しさん
垢版 |
2017/12/08(金) 05:21:46.31ID:ra4CwiYK
>>91
お前って行動を振り返る癖がないんだな
墓穴を掘るのは別に止めないけど、病気ならはやく病院に行った方が良いよ
0094デフォルトの名無しさん
垢版 |
2017/12/08(金) 05:27:36.83ID:T81djMMQ
毎回同じようなこと繰り返してるけど、今のrubyで問題ないと思ってるやつのほうが相当やばいと思うけどね
0095デフォルトの名無しさん
垢版 |
2017/12/08(金) 05:33:53.21ID:uDZwOU33
荒らし「毎回同じようなこと繰り返してるけど、今のrubyで問題ないと思ってるやつのほうが相当やばいと思うけどね」(荒す口実にしないとは言っていない)
009677
垢版 |
2017/12/08(金) 06:05:43.38ID:DD2Dk6IR
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
ありがとう。その方法でも出来ますね
0099デフォルトの名無しさん
垢版 |
2017/12/08(金) 06:41:08.45ID:61INIGrw
単発でネガキャン繰り返してた奴=自演しながら静的静的言い続けてる荒らし
は確定か
次、荒らしがやりそうなのは
荒らしをスルーして書き込みさせてたIDでの"加勢"かな?
0100デフォルトの名無しさん
垢版 |
2017/12/08(金) 07:38:48.25ID:AScviHBw
少なくともID:AScviHBwはRubyと関係ないことは言ってないし別に間違ったことも言ってないでしょ
静的型の方がリファクタリングしやすい、くらいMatzでも発言したことあるぞ
さすがにこんなのまで荒らし扱いするのはこのスレくらいだよ
■ このスレッドは過去ログ倉庫に格納されています

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