プログラミング言語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/
Ruby 初心者スレッド Part 62
■ このスレッドは過去ログ倉庫に格納されています
2017/11/24(金) 00:35:29.31ID:rLZHdQ3Q
407デフォルトの名無しさん
2017/12/19(火) 00:35:31.16ID:OxL2RNB7 >>406
Rubyについて(アンチ専用) Part004
https://mevius.5ch.net/test/read.cgi/tech/1249737531/
おまえのスレに帰れ
二度と初心者を騙そうとするな
Rubyについて(アンチ専用) Part004
https://mevius.5ch.net/test/read.cgi/tech/1249737531/
おまえのスレに帰れ
二度と初心者を騙そうとするな
408デフォルトの名無しさん
2017/12/19(火) 00:41:45.22ID:cabpZd/N 出来る出来ないの話じゃないって自分で言い出してからまだ30分も経ってないのに、
出来る出来ないの話に戻したな
これでは誰もアンチを信じてくれないわ
出来る出来ないの話に戻したな
これでは誰もアンチを信じてくれないわ
409デフォルトの名無しさん
2017/12/19(火) 00:46:31.62ID:si5W7uAD 動的言語がなぜリファクタリングに弱いかというと
いつクラスの定義が定まるかを考えてみればわかる
まずリファクタリングというのはソースコードを修正する
そしてクラスの定義はソースコードから生成される
この時、ソースコードからクラスの定義が単純に決まれば良いのだが
動的言語では、実行するまでクラスの定義が決まらない
ならば実行すればいいと思うかもしれないが、何をどう実行すれば
クラスの定義が定まるのかを知る方法がない
つまりクラスをリファクタリングする場合、
クラスの完成形を知ることができないので、
人間が判断するしかなくなってしまい時間がかかる
いつクラスの定義が定まるかを考えてみればわかる
まずリファクタリングというのはソースコードを修正する
そしてクラスの定義はソースコードから生成される
この時、ソースコードからクラスの定義が単純に決まれば良いのだが
動的言語では、実行するまでクラスの定義が決まらない
ならば実行すればいいと思うかもしれないが、何をどう実行すれば
クラスの定義が定まるのかを知る方法がない
つまりクラスをリファクタリングする場合、
クラスの完成形を知ることができないので、
人間が判断するしかなくなってしまい時間がかかる
410デフォルトの名無しさん
2017/12/19(火) 00:47:31.81ID:OxL2RNB7411デフォルトの名無しさん
2017/12/19(火) 00:48:21.71ID:si5W7uAD412デフォルトの名無しさん
2017/12/19(火) 00:49:30.71ID:OxL2RNB7 >>411
アンチが初心者スレで暴れるなら
アンチが初心者スレで暴れるなら
413デフォルトの名無しさん
2017/12/19(火) 00:49:36.49ID:si5W7uAD414デフォルトの名無しさん
2017/12/19(火) 00:51:32.45ID:cabpZd/N https://mevius.5ch.net/test/read.cgi/tech/1249737531/
アンチはアンチ専用スレでやれ
アンチはアンチ専用スレでやれ
415デフォルトの名無しさん
2017/12/19(火) 00:57:25.70ID:UYOJvaLF 単発IDで自演しまくる自治厨騙りの荒らしには構うな
スルーしろ
スルーしろ
416デフォルトの名無しさん
2017/12/19(火) 00:58:50.33ID:cabpZd/N 自演がばれてんぞ
417デフォルトの名無しさん
2017/12/19(火) 00:59:26.95ID:si5W7uAD 単発IDお前やんw
418デフォルトの名無しさん
2017/12/19(火) 01:01:02.38ID:cabpZd/N アンチスレで好きなだけやれ
ここはお前のようなアンチのためのスレではない
ここはお前のようなアンチのためのスレではない
419デフォルトの名無しさん
2017/12/19(火) 01:02:55.81ID:7WjlvYND そろそろうざいからアンチはアンチスレへ帰れ
420デフォルトの名無しさん
2017/12/19(火) 01:03:46.23ID:si5W7uAD 単発ID、自演ばれてるで?w
421デフォルトの名無しさん
2017/12/19(火) 01:05:19.68ID:cabpZd/N 見えない敵と闘っていないでアンチスレへ帰れ
そこなら好きなだけ自演しても誰も文句を言わないから
そこなら好きなだけ自演しても誰も文句を言わないから
422デフォルトの名無しさん
2017/12/19(火) 01:06:10.31ID:si5W7uAD はっきり言わないと理解できないのかな?
俺はアンチスレには行きません
何度言われてもね
俺はアンチスレには行きません
何度言われてもね
423デフォルトの名無しさん
2017/12/19(火) 01:09:10.98ID:cabpZd/N アンチやりたいならアンチスレへ行け
ここは初心者のためのスレだ
初心者を騙すためのスレではない
ここは初心者のためのスレだ
初心者を騙すためのスレではない
424デフォルトの名無しさん
2017/12/19(火) 01:10:01.09ID:si5W7uAD 神様「お前の願いは叶えられることはなかった」
425デフォルトの名無しさん
2017/12/19(火) 01:11:14.38ID:7WjlvYND そもそもなんでアンチは発狂してんの?
顔真っ赤にしてないで落ち着けよ
顔真っ赤にしてないで落ち着けよ
426デフォルトの名無しさん
2017/12/19(火) 01:12:07.22ID:si5W7uAD 発狂はしてないよw
面白いから書き込んでる
面白いから書き込んでる
427デフォルトの名無しさん
2017/12/19(火) 01:12:28.45ID:cabpZd/N そんなに初心者スレで荒らし行為やアンチをやりたいのか?
428デフォルトの名無しさん
2017/12/19(火) 01:14:15.45ID:si5W7uAD 荒らしてないよ?
Rubyでリファクタリングは静的言語よりも
大変だって話をしてる
Rubyでリファクタリングは静的言語よりも
大変だって話をしてる
429デフォルトの名無しさん
2017/12/19(火) 01:15:12.45ID:cabpZd/N 初心者スレじゃないと話せないことなのか?
アンチスレでは話せないのか?
アンチスレでは話せないのか?
430デフォルトの名無しさん
2017/12/19(火) 01:17:14.70ID:si5W7uAD 初心者スレ以外でも話せるよ
ただしアンチじゃないからね。Rubyの特徴を言っているだけ
アンチスレ以外のRubyスレどこででも話をする
ただしアンチじゃないからね。Rubyの特徴を言っているだけ
アンチスレ以外のRubyスレどこででも話をする
431デフォルトの名無しさん
2017/12/19(火) 01:19:57.23ID:cabpZd/N お前のやってきたことはアンチ以外の何者でもないんだが
これからも、同じ事を続けていく気か?
これからも、同じ事を続けていく気か?
432デフォルトの名無しさん
2017/12/19(火) 01:22:18.20ID:si5W7uAD はい
433デフォルトの名無しさん
2017/12/19(火) 01:23:17.40ID:cabpZd/N つまり、他の人にアンチ行為と受止められていると判ってて、
故意に続けるわけだな?
やめる気は無いのか?
故意に続けるわけだな?
やめる気は無いのか?
434デフォルトの名無しさん
2017/12/19(火) 01:23:40.17ID:si5W7uAD ない
435デフォルトの名無しさん
2017/12/19(火) 01:25:41.82ID:cabpZd/N 他の人に故意に不快を与える行為を続けるという事だね
板やレスの利用等を理解しているか?
板やレスの利用等を理解しているか?
436デフォルトの名無しさん
2017/12/19(火) 01:27:13.66ID:si5W7uAD うん
437デフォルトの名無しさん
2017/12/19(火) 01:29:43.14ID:cabpZd/N つまり、わかった上でやっているという事だね
それと、いまさらだがruby初心者?
それと、いまさらだがruby初心者?
438デフォルトの名無しさん
2017/12/19(火) 01:30:38.45ID:si5W7uAD ウイ
439デフォルトの名無しさん
2017/12/19(火) 01:32:59.85ID:cabpZd/N つまりRuby初心者だから間違ったことを言っていたという事だね
それはつまり、これからも間違った事を言い続けるって事かな?
それはつまり、これからも間違った事を言い続けるって事かな?
440デフォルトの名無しさん
2017/12/19(火) 01:33:45.75ID:si5W7uAD ノー
441デフォルトの名無しさん
2017/12/19(火) 01:36:06.55ID:cabpZd/N その返答は、今後は反省して間違ったことを言わない、って事を意味しているのかな?
442デフォルトの名無しさん
2017/12/19(火) 01:39:05.84ID:si5W7uAD __
, ‐' ´ ``‐、 / ̄:三}
. /,. -─‐- 、. ヽ / ,.=j
_,.:_'______ヽ、 .! ./ _,ノ
`‐、{ へ '゙⌒ `!~ヽ. ! /{. /
`! し゚ ( ゚j `v‐冫 , '::::::::ヽ、/ そんなことより野球しようぜ!
. {.l '⌒ ゙ 6',! / :::::::::::::::/ __
. 〈 < ´ ̄,フ .ノー'_ , ‐'´::::::::::::::;/ (_ノ)‐-、
. ヽ.、 ` ‐", ‐´‐:ラ ':::::::::::::::: ;∠. ヽ_} ゙ヽ
,.r` "´ /:::::::::::::::::::ィ´ `ゝ !、 /
/ / :::::::::::::::: ; '´ /´\ / r'\
. i ! ::::::::::::::/ 墨 | .!::::::::/ヽ、.._!ヽ. ヽ、
{ {:::::::::::;:イ / ‖i:::::::/:::::::::::::/ \
. ヽ ヽ,.ァ‐'´ /ヽ 二 ,/`ヽ、::::::::: /
, ‐' ´ ``‐、 / ̄:三}
. /,. -─‐- 、. ヽ / ,.=j
_,.:_'______ヽ、 .! ./ _,ノ
`‐、{ へ '゙⌒ `!~ヽ. ! /{. /
`! し゚ ( ゚j `v‐冫 , '::::::::ヽ、/ そんなことより野球しようぜ!
. {.l '⌒ ゙ 6',! / :::::::::::::::/ __
. 〈 < ´ ̄,フ .ノー'_ , ‐'´::::::::::::::;/ (_ノ)‐-、
. ヽ.、 ` ‐", ‐´‐:ラ ':::::::::::::::: ;∠. ヽ_} ゙ヽ
,.r` "´ /:::::::::::::::::::ィ´ `ゝ !、 /
/ / :::::::::::::::: ; '´ /´\ / r'\
. i ! ::::::::::::::/ 墨 | .!::::::::/ヽ、.._!ヽ. ヽ、
{ {:::::::::::;:イ / ‖i:::::::/:::::::::::::/ \
. ヽ ヽ,.ァ‐'´ /ヽ 二 ,/`ヽ、::::::::: /
443デフォルトの名無しさん
2017/12/19(火) 01:41:22.11ID:cabpZd/N 君は、いままでアンチを繰り返し多くの人を故意に不快にさせてきたわけだが、
今後も続けるのかい?
今後も続けるのかい?
444デフォルトの名無しさん
2017/12/19(火) 01:42:11.51ID:si5W7uAD 飽きた、>>409まで内容巻き戻すわ
動的言語がなぜリファクタリングに弱いかというと
いつクラスの定義が定まるかを考えてみればわかる
まずリファクタリングというのはソースコードを修正する
そしてクラスの定義はソースコードから生成される
この時、ソースコードからクラスの定義が単純に決まれば良いのだが
動的言語では、実行するまでクラスの定義が決まらない
ならば実行すればいいと思うかもしれないが、何をどう実行すれば
クラスの定義が定まるのかを知る方法がない
つまりクラスをリファクタリングする場合、
クラスの完成形を知ることができないので、
人間が判断するしかなくなってしまい時間がかかる
動的言語がなぜリファクタリングに弱いかというと
いつクラスの定義が定まるかを考えてみればわかる
まずリファクタリングというのはソースコードを修正する
そしてクラスの定義はソースコードから生成される
この時、ソースコードからクラスの定義が単純に決まれば良いのだが
動的言語では、実行するまでクラスの定義が決まらない
ならば実行すればいいと思うかもしれないが、何をどう実行すれば
クラスの定義が定まるのかを知る方法がない
つまりクラスをリファクタリングする場合、
クラスの完成形を知ることができないので、
人間が判断するしかなくなってしまい時間がかかる
445デフォルトの名無しさん
2017/12/19(火) 01:43:46.18ID:cabpZd/N ではもう一度聞こう
今後は反省して間違ったことを言わない、という意思はあるのかな?
今後は反省して間違ったことを言わない、という意思はあるのかな?
446デフォルトの名無しさん
2017/12/19(火) 01:45:58.37ID:si5W7uAD じゃまなので透明あぼーんした
447デフォルトの名無しさん
2017/12/19(火) 01:50:12.56ID:7ZIeceXv そんなことよりJOI2017/2018の話しようぜ
448デフォルトの名無しさん
2017/12/19(火) 01:54:22.14ID:RoMU0mit アンチスレに帰れよアンチ
449デフォルトの名無しさん
2017/12/19(火) 02:06:16.03ID:cabpZd/N Rubyについて知らない事を知ったふりして話してたわけか
道理で
道理で
450デフォルトの名無しさん
2017/12/19(火) 03:08:47.58ID:GcPOv6XA Ripper.sexp_rawからRipper.sexpに戻すと:stmts_add等が削られて微妙にやりにくい
全部rawの方でいい気がするがRipper.sexpってどういう時に使うんだ?
全部rawの方でいい気がするがRipper.sexpってどういう時に使うんだ?
451デフォルトの名無しさん
2017/12/19(火) 04:03:20.54ID:UdKVtF6e あれてんなw
型の次は、リファクタリングかよ
初心者の内容か?
俺の場合GoFなんかで書き直したい病が持病です。
んでrspec漏れてしょうもないバグおこす。
ほどほどに持病と付き合おうw
型の次は、リファクタリングかよ
初心者の内容か?
俺の場合GoFなんかで書き直したい病が持病です。
んでrspec漏れてしょうもないバグおこす。
ほどほどに持病と付き合おうw
452デフォルトの名無しさん
2017/12/19(火) 04:45:08.67ID:cabpZd/N453デフォルトの名無しさん
2017/12/19(火) 05:28:28.56ID:GcPOv6XA やっぱり表示用なんだ
それから出力された配列の操作なんだけど、
配列の中ごろ特定の要素を基に「上の配列に○○が在りかつ後ろの要素に△△があったら××」、
みたいな同定の仕方をしてるんだけど問題ある?
それから出力された配列の操作なんだけど、
配列の中ごろ特定の要素を基に「上の配列に○○が在りかつ後ろの要素に△△があったら××」、
みたいな同定の仕方をしてるんだけど問題ある?
454デフォルトの名無しさん
2017/12/19(火) 06:21:37.16ID:a07C5OyP 配列の操作ってそんなもんだろ
455デフォルトの名無しさん
2017/12/19(火) 07:00:22.12ID:ykexPK2V リファクタリングで香ばしい展開になっててわろた
オレがおっさんになったのが、たまたま住人がアホなのか、2ch民全体のレベルが下がったのか
オレがおっさんになったのが、たまたま住人がアホなのか、2ch民全体のレベルが下がったのか
456デフォルトの名無しさん
2017/12/19(火) 07:28:41.13ID:ZuB1zFT8457デフォルトの名無しさん
2017/12/19(火) 07:38:28.19ID:yvsoeKM9 >>455
Rubyはとっつきやすい分、ニワカとか、簡単だと思って挫折した勘違い君も多いからな。
リファクタリングにしても、用語の定義とか目的知らずに書いてるなあ、ってのばかり。
きちんと理解しようと思ったら、ガウディ本(CTMCP)で計算モデルを理解するのがお勧め。
あと「リファクタリング:Rubyエディション」とかで、以下を把握できる。
・リファクタリングはプログラム改善に使われることが多い。
・数多ある改善基準のうち、リファクタリングは何を対象にしているのか?
・改善手法は、計算モデルと、改善の目的により様々。
Rubyはとっつきやすい分、ニワカとか、簡単だと思って挫折した勘違い君も多いからな。
リファクタリングにしても、用語の定義とか目的知らずに書いてるなあ、ってのばかり。
きちんと理解しようと思ったら、ガウディ本(CTMCP)で計算モデルを理解するのがお勧め。
あと「リファクタリング:Rubyエディション」とかで、以下を把握できる。
・リファクタリングはプログラム改善に使われることが多い。
・数多ある改善基準のうち、リファクタリングは何を対象にしているのか?
・改善手法は、計算モデルと、改善の目的により様々。
458デフォルトの名無しさん
2017/12/19(火) 10:23:42.83ID:si5W7uAD >>457
なんかリファクタリングを理解してないようにみえる。
リファクタリングと計算モデルがどうつながるのか説明してみ
その後、あんたの意見と同等の話をしているサイトを言ってみ
リファクタリングと計算モデルは
ほとんどつながりがないことがわかるからさ
なんかリファクタリングを理解してないようにみえる。
リファクタリングと計算モデルがどうつながるのか説明してみ
その後、あんたの意見と同等の話をしているサイトを言ってみ
リファクタリングと計算モデルは
ほとんどつながりがないことがわかるからさ
459デフォルトの名無しさん
2017/12/19(火) 12:22:26.77ID:B3Kk66cH 結局、荒らしはアンチスレに帰らんかったのか
そりゃアンチスレも落ちぶれるわ
そりゃアンチスレも落ちぶれるわ
460デフォルトの名無しさん
2017/12/19(火) 22:13:01.86ID:5rvtlxA7 >>428
>Rubyでリファクタリングは静的言語よりも
>大変だって話をしてる
いいや、している話は:
「動的型付け言語は静的型付け言語よりも大変だ」
だよ
その主張は(個人的には)認めるけど、それだけでRubyスレに
粘着するのは荒らし行為そのものではないかな?
http://hissi.org/read.php/tech/20171219/c2k1Vzd1QUQ.html
それだけ「動的型付け言語におけるリファクタリング」に関心があるなら、
>>107 で紹介した専用スレへ移動すべきだよ
>Rubyでリファクタリングは静的言語よりも
>大変だって話をしてる
いいや、している話は:
「動的型付け言語は静的型付け言語よりも大変だ」
だよ
その主張は(個人的には)認めるけど、それだけでRubyスレに
粘着するのは荒らし行為そのものではないかな?
http://hissi.org/read.php/tech/20171219/c2k1Vzd1QUQ.html
それだけ「動的型付け言語におけるリファクタリング」に関心があるなら、
>>107 で紹介した専用スレへ移動すべきだよ
461デフォルトの名無しさん
2017/12/20(水) 00:18:03.50ID:n7Ixbq8J >>460
俺はそんなことは言ってないので他人の意見だね
Rubyが大変なのはソースコードを読むときだよ。書くときは比較的楽。
楽の意味がわからないなら、タイプ数が少ないと言い換えても良い
Rubyは書くときは楽で、読むときは大変
静的型付け言語はその逆
理由はまんまだが型という情報が書いてあるから。
情報を多く書かなければいけない静的型付け言語は大変で
でも情報が多く有るから静的型付け言語はわかりやすい
ただし前提として複数のモジュール(クラス等)から成り立ってる場合と
言ったほうが良いかもな。ローカル変数なんかは型が書いて無くても
すぐ近くにコードがあって該当の関数しか見なくていいから型がなくても大丈夫
一番の問題は複数モジュールから成り立っていて、特に別ファイルに分かれている場合
こういうのはドキュメントとして型情報を書いておかないと、わけわからなくなる
だけどドキュメントとして型情報書くなら、タイプ数は静的型付け言語より多くなってしまうので本末転倒
Rubyは書くときは楽(ドキュメントを書かないという前提)で、読むときは大変
ドキュメントを書くなら、それはソースコードに一元化した方がいいよって話になる
俺はそんなことは言ってないので他人の意見だね
Rubyが大変なのはソースコードを読むときだよ。書くときは比較的楽。
楽の意味がわからないなら、タイプ数が少ないと言い換えても良い
Rubyは書くときは楽で、読むときは大変
静的型付け言語はその逆
理由はまんまだが型という情報が書いてあるから。
情報を多く書かなければいけない静的型付け言語は大変で
でも情報が多く有るから静的型付け言語はわかりやすい
ただし前提として複数のモジュール(クラス等)から成り立ってる場合と
言ったほうが良いかもな。ローカル変数なんかは型が書いて無くても
すぐ近くにコードがあって該当の関数しか見なくていいから型がなくても大丈夫
一番の問題は複数モジュールから成り立っていて、特に別ファイルに分かれている場合
こういうのはドキュメントとして型情報を書いておかないと、わけわからなくなる
だけどドキュメントとして型情報書くなら、タイプ数は静的型付け言語より多くなってしまうので本末転倒
Rubyは書くときは楽(ドキュメントを書かないという前提)で、読むときは大変
ドキュメントを書くなら、それはソースコードに一元化した方がいいよって話になる
462デフォルトの名無しさん
2017/12/20(水) 00:50:26.05ID:gjXzJsOL 中身スカスカの長文なんてよく書き込めるな
頭の中もスカスカしてそう
頭の中もスカスカしてそう
463デフォルトの名無しさん
2017/12/20(水) 00:55:47.63ID:4hmeAMNm464デフォルトの名無しさん
2017/12/20(水) 02:10:20.76ID:wlycKVFQ rubyの可読性のよさには感動する
DSLとかすごい
たまーにendだらけになるのは難点w
DSLとかすごい
たまーにendだらけになるのは難点w
465デフォルトの名無しさん
2017/12/20(水) 02:23:39.76ID:Jv20jxkb 動的にリファクタリングさせるコード書いてるけど、
書けないやつはrubymine使えば良くね?
書けないやつはrubymine使えば良くね?
466デフォルトの名無しさん
2017/12/20(水) 02:51:18.20ID:s+zCj7ov 配列の操作そのものが難しいと勘違いしてるんじゃないか?
配列の操作に使うコードって大概は下みたいに10行前後で書けるだろ
class Array
def acces(ary = [])
return self if ary.empty?
colect_int = ary.dup
result = self[colect_int.shift]
return colect_int.empty? ? result : result.acces(colect_int)
end
end
配列の操作に使うコードって大概は下みたいに10行前後で書けるだろ
class Array
def acces(ary = [])
return self if ary.empty?
colect_int = ary.dup
result = self[colect_int.shift]
return colect_int.empty? ? result : result.acces(colect_int)
end
end
467デフォルトの名無しさん
2017/12/20(水) 05:23:54.83ID:Jv20jxkb 配列が苦手とか言われても
パーサから順にイベントを渡されて処理するより明らかに難易度低いだろ
パーサから順にイベントを渡されて処理するより明らかに難易度低いだろ
468デフォルトの名無しさん
2017/12/20(水) 06:54:28.40ID:6Esz8d8C 今のところ、リファクタリングについて誰ひとり説明できてないぞ?
もっとシンプルに表現できるだろw
もっとシンプルに表現できるだろw
469デフォルトの名無しさん
2017/12/20(水) 08:05:26.87ID:DZ3d9p1Y >>468
というお前さんも説明出来ない訳だが。
というお前さんも説明出来ない訳だが。
470デフォルトの名無しさん
2017/12/20(水) 08:07:18.11ID:DZ3d9p1Y >>458
数十レスも書いといて「リファクタリングとはこういうものだ」とすら書けない奴が何か言ってる。
数十レスも書いといて「リファクタリングとはこういうものだ」とすら書けない奴が何か言ってる。
471デフォルトの名無しさん
2017/12/20(水) 08:45:35.24ID:Za3FAu+s おい無職
自演はやめとけ
自演はやめとけ
472デフォルトの名無しさん
2017/12/20(水) 14:31:38.22ID:Za3FAu+s 毎朝7時8時から書き込める荒らしは何の仕事してるんや?
473デフォルトの名無しさん
2017/12/20(水) 18:57:50.54ID:2lbW5JOk RubyVM::InstructionSequence.compile("class Hoge end").eval
のコードを実行したら直後に
p Hoge.new
って問題無く書けるのか
コンテクストが別々だと勘違いしてた
のコードを実行したら直後に
p Hoge.new
って問題無く書けるのか
コンテクストが別々だと勘違いしてた
474デフォルトの名無しさん
2017/12/20(水) 22:34:07.59ID:4hmeAMNm >>470
リファクタリングを理解してませんと認めたってことでOKだね
リファクタリングを理解してませんと認めたってことでOKだね
475デフォルトの名無しさん
2017/12/20(水) 22:35:24.96ID:4hmeAMNm476デフォルトの名無しさん
2017/12/20(水) 22:48:45.50ID:4hmeAMNm >>466
> 配列の操作そのものが難しいと勘違いしてるんじゃないか?
> 配列の操作に使うコードって大概は下みたいに10行前後で書けるだろ
書けてないだろ?
それ何の処理するコードだよ
[1,2,3].acces([])
=> [1, 2, 3]
[1,2,3].acces([1])
=> 2
[1,2,3].acces([1,2])
NoMethodError: undefined method `acces' for 2:Integer
from (irb):6:in `acces'
from (irb):29
from C:/Ruby24-x64/bin/irb.cmd:19:in `<main>'
お前がそれじゃ、配列は難しいという結論にしかならんぞ
> 配列の操作そのものが難しいと勘違いしてるんじゃないか?
> 配列の操作に使うコードって大概は下みたいに10行前後で書けるだろ
書けてないだろ?
それ何の処理するコードだよ
[1,2,3].acces([])
=> [1, 2, 3]
[1,2,3].acces([1])
=> 2
[1,2,3].acces([1,2])
NoMethodError: undefined method `acces' for 2:Integer
from (irb):6:in `acces'
from (irb):29
from C:/Ruby24-x64/bin/irb.cmd:19:in `<main>'
お前がそれじゃ、配列は難しいという結論にしかならんぞ
477デフォルトの名無しさん
2017/12/20(水) 22:56:44.83ID:4hmeAMNm >>468
> 今のところ、リファクタリングについて誰ひとり説明できてないぞ?
> もっとシンプルに表現できるだろw
ソフトウェアの外部的振る舞いを保ちつつ、理解や修正が簡単になるように、内部構造を改善すること
補足を追加するならば、
振る舞いを保てていればいいので、アルゴリズムを変えてもOK
というか、無駄があったりしてわかりにくいアルゴリズムを
理解や修正が簡単になるように書き換えることもリファクタリングの一つ
何が言いたいかというと、リファクタリングはパースした結果が
一致するように書き換えることではないということ
パースできたからといって、リファクタリングができたことにはならない
> 今のところ、リファクタリングについて誰ひとり説明できてないぞ?
> もっとシンプルに表現できるだろw
ソフトウェアの外部的振る舞いを保ちつつ、理解や修正が簡単になるように、内部構造を改善すること
補足を追加するならば、
振る舞いを保てていればいいので、アルゴリズムを変えてもOK
というか、無駄があったりしてわかりにくいアルゴリズムを
理解や修正が簡単になるように書き換えることもリファクタリングの一つ
何が言いたいかというと、リファクタリングはパースした結果が
一致するように書き換えることではないということ
パースできたからといって、リファクタリングができたことにはならない
478デフォルトの名無しさん
2017/12/20(水) 23:30:14.73ID:nhQOfr/3 2.5まで後5日
479デフォルトの名無しさん
2017/12/21(木) 01:18:36.01ID:l5/5gdQz480デフォルトの名無しさん
2017/12/21(木) 01:42:59.97ID:prpojwIY >>479
いい加減学習しよう
422 自分:デフォルトの名無しさん[sage] 投稿日:2017/12/19(火) 01:06:10.31 ID:si5W7uAD [10/23]
はっきり言わないと理解できないのかな?
俺はアンチスレには行きません
何度言われてもね
いい加減学習しよう
422 自分:デフォルトの名無しさん[sage] 投稿日:2017/12/19(火) 01:06:10.31 ID:si5W7uAD [10/23]
はっきり言わないと理解できないのかな?
俺はアンチスレには行きません
何度言われてもね
481デフォルトの名無しさん
2017/12/21(木) 02:12:25.62ID:IcTBGDe8 自演ばれてんぞ
482デフォルトの名無しさん
2017/12/21(木) 02:49:55.63ID:l5/5gdQz483デフォルトの名無しさん
2017/12/21(木) 03:03:06.96ID:h5j2wgPh 例えば、構造やサイズが変わる多次元配列の要素を辿って行く必要がある場合、
添え字だけ集めて一括指定で辿れる様にするのって普通?
添え字だけ集めて一括指定で辿れる様にするのって普通?
484デフォルトの名無しさん
2017/12/21(木) 11:43:09.31ID:XGDp/jet >>477
はい。正解
はい。正解
485デフォルトの名無しさん
2017/12/21(木) 12:10:12.13ID:ow9tew52486デフォルトの名無しさん
2017/12/21(木) 13:37:15.11ID:K/addjJ3487デフォルトの名無しさん
2017/12/21(木) 14:41:34.48ID:nqxJQXq0 Array#dig
488デフォルトの名無しさん
2017/12/21(木) 18:29:48.77ID:ztrEyuDD 文字列に対して
・0〜9の一桁の数であれば頭に0を付け足す(例:00,01
・10以降はそのまま
という処理を行いたいんですが、正規表現でスパッとかけたりするんでしょうか
イメージとしては
text = "9"なら09
text = "10"なら10
として出力(print)がしたいです
gsubで置換できないか試しているのですがうまいこといかず・・・
アドバイス頂けますと幸いです
・0〜9の一桁の数であれば頭に0を付け足す(例:00,01
・10以降はそのまま
という処理を行いたいんですが、正規表現でスパッとかけたりするんでしょうか
イメージとしては
text = "9"なら09
text = "10"なら10
として出力(print)がしたいです
gsubで置換できないか試しているのですがうまいこといかず・・・
アドバイス頂けますと幸いです
489デフォルトの名無しさん
2017/12/21(木) 18:34:23.75ID:2OtOKx8R 正規表現よりも sprintfフォーマットを使おう
puts "%02d, %02d,%02d,%02d" % [1,5,10, 100]
#=> 01, 05,10,100
puts "%02d, %02d,%02d,%02d" % [1,5,10, 100]
#=> 01, 05,10,100
490デフォルトの名無しさん
2017/12/21(木) 18:34:49.31ID:ZdPTZj/x sprintf "%02d" % 9
sprintf "%02d" % 10
sprintf "%02d" % 10
491デフォルトの名無しさん
2017/12/21(木) 18:51:00.27ID:2OtOKx8R ちなみにあえてgsubでやるなら
'1'.gsub(/^(?=\d$)/, '0') #=> "01"
'42'.gsub(/^(?=\d$)/, '0') #=> "42"
'1'.gsub(/^(?=\d$)/, '0') #=> "01"
'42'.gsub(/^(?=\d$)/, '0') #=> "42"
492デフォルトの名無しさん
2017/12/21(木) 18:51:08.76ID:8yE94KQ4 %w(0 1 5 9 11 99 108 1024 16384).each do |x|
p x.sub(/^([0-9])$/) { "0#$1" } # キャプチャを使った例
# p x.sub(/^(?=[0-9]$)/) { "0" } # 先読みを使った例
# p "%02d" % x.to_i # 整数値に変換して書式文字列を使った例
end
"00"
"01"
"05"
"09"
"11"
"99"
"108"
"1024"
"16384"
p x.sub(/^([0-9])$/) { "0#$1" } # キャプチャを使った例
# p x.sub(/^(?=[0-9]$)/) { "0" } # 先読みを使った例
# p "%02d" % x.to_i # 整数値に変換して書式文字列を使った例
end
"00"
"01"
"05"
"09"
"11"
"99"
"108"
"1024"
"16384"
493デフォルトの名無しさん
2017/12/21(木) 19:24:42.40ID:gRGJJy1x ありがとうございます!sprintf、こういう風に使えるのですか。便利ですね・・・
正規表現での場合も教えていただきありがとうございました
勉強になりましたm(_ _)m
正規表現での場合も教えていただきありがとうございました
勉強になりましたm(_ _)m
494デフォルトの名無しさん
2017/12/21(木) 19:26:00.72ID:gRGJJy1x495デフォルトの名無しさん
2017/12/21(木) 19:32:53.88ID:aIK1VRoC 正規表現は後で泣くからなるべく使わないほうがいい。
もし使うのなら
複雑のは避けて
シンプル+シンプルと組み合わせて使うといい。
もし使うのなら
複雑のは避けて
シンプル+シンプルと組み合わせて使うといい。
496デフォルトの名無しさん
2017/12/21(木) 20:20:34.35ID:prpojwIY497デフォルトの名無しさん
2017/12/21(木) 22:24:14.24ID:OUKJWky+ >>461
>俺はそんなことは言ってないので他人の意見だね
いいや、もろに言ってるよ
君のレスに含まれるRubyという単語を改変してみた:
>動的型付け言語が大変なのはソースコードを読むときだよ。書くときは比較的楽。
>楽の意味がわからないなら、タイプ数が少ないと言い換えても良い
:
>理由はまんまだが型という情報が書いてあるから。
>情報を多く書かなければいけない静的型付け言語は大変で
>でも情報が多く有るから静的型付け言語はわかりやすい
なんら違和感もないだろう?あいも変わらずごく当たり前な一般論を語っているだけ
さあ、Rubyに限定されない「動的型付け言語におけるリファクタリング」を
語りたいのなら、このスレに粘着せず、>>107で紹介した専用スレへ移動しなさい
>俺はそんなことは言ってないので他人の意見だね
いいや、もろに言ってるよ
君のレスに含まれるRubyという単語を改変してみた:
>動的型付け言語が大変なのはソースコードを読むときだよ。書くときは比較的楽。
>楽の意味がわからないなら、タイプ数が少ないと言い換えても良い
:
>理由はまんまだが型という情報が書いてあるから。
>情報を多く書かなければいけない静的型付け言語は大変で
>でも情報が多く有るから静的型付け言語はわかりやすい
なんら違和感もないだろう?あいも変わらずごく当たり前な一般論を語っているだけ
さあ、Rubyに限定されない「動的型付け言語におけるリファクタリング」を
語りたいのなら、このスレに粘着せず、>>107で紹介した専用スレへ移動しなさい
498デフォルトの名無しさん
2017/12/21(木) 22:29:08.65ID:prpojwIY499デフォルトの名無しさん
2017/12/22(金) 10:53:32.70ID:zY/Ujd0Y 496から498までの自演を見てると小学生の演劇見せられてる気分になる
って事で晒しage
って事で晒しage
500デフォルトの名無しさん
2017/12/22(金) 15:56:43.92ID:o0zFMz04501デフォルトの名無しさん
2017/12/22(金) 15:57:53.00ID:o0zFMz04 つか、Ruby関係ないかw
502デフォルトの名無しさん
2017/12/22(金) 16:08:37.20ID:OF22/s+V ruby2.5は何が来るかな
503デフォルトの名無しさん
2017/12/22(金) 17:59:37.34ID:2CqGXpCv これでTypeScriptやPython方式の型ヒンティングが来たらコミュニティが大荒れするだろうな
504デフォルトの名無しさん
2017/12/22(金) 18:04:00.26ID:hLTr5w9I Ruby 2.5.0-rc1 リリース (12月14日)
https://www.ruby-lang.org/ja/news/2017/12/14/ruby-2-5-0-rc1-released/
★ 新機能 ★
* バックトレースおよびエラーメッセージが逆順に出力されるようになった (Railsゴリ押し?)
* トップレベルにおける定数検索の削除
* rescue/else/ensure が do/end ブロック内にも直接書けるようになった
* yield_self の追加
★ パフォーマンスの改善 ★
(略...
★ その他の注目すべき 2.4 からの変更点 ★
* Onigmo 6.1.3 の取り組み (実際は Ruby 2.4.1 にて取り込み済み)
* bundler の取り込み
その他略...
詳細は https://github.com/ruby/ruby/blob/v2_5_0_rc1/NEWS に書かれてる
☆彡 ☆彡 ☆彡 ☆彡 ☆彡
第三者の記事:
* サンプルコードでわかる!Ruby 2.5の主な新機能と変更点 https://qiita.com/jnchito/items/f182b6f0093a6a3701a1
https://www.ruby-lang.org/ja/news/2017/12/14/ruby-2-5-0-rc1-released/
★ 新機能 ★
* バックトレースおよびエラーメッセージが逆順に出力されるようになった (Railsゴリ押し?)
* トップレベルにおける定数検索の削除
* rescue/else/ensure が do/end ブロック内にも直接書けるようになった
* yield_self の追加
★ パフォーマンスの改善 ★
(略...
★ その他の注目すべき 2.4 からの変更点 ★
* Onigmo 6.1.3 の取り組み (実際は Ruby 2.4.1 にて取り込み済み)
* bundler の取り込み
その他略...
詳細は https://github.com/ruby/ruby/blob/v2_5_0_rc1/NEWS に書かれてる
☆彡 ☆彡 ☆彡 ☆彡 ☆彡
第三者の記事:
* サンプルコードでわかる!Ruby 2.5の主な新機能と変更点 https://qiita.com/jnchito/items/f182b6f0093a6a3701a1
505デフォルトの名無しさん
2017/12/22(金) 18:20:37.57ID:bOdX3AhV ね
ん
ま
つ
ん
ま
つ
506デフォルトの名無しさん
2017/12/22(金) 21:24:19.52ID:6yk8gXaG >>500
> 単純に静的言語はコンパイルである程度構文エラーを検出できるから楽を、
> リファクタリングが楽だと思ってるんじゃないかな
違うよ。静的型付け言語の場合が簡単なのは、
ソースコード上に型が書いてあるからだよ
コンパイルエラーは関係ない
例えば
class Klass {
> 単純に静的言語はコンパイルである程度構文エラーを検出できるから楽を、
> リファクタリングが楽だと思ってるんじゃないかな
違うよ。静的型付け言語の場合が簡単なのは、
ソースコード上に型が書いてあるからだよ
コンパイルエラーは関係ない
例えば
class Klass {
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 外務省局長は無言で厳しい表情…日中の高官協議終了か 高市首相“台湾”発言で中国が強硬対応 発言撤回求めたか… [BFU★]
- 中国国営メディア「沖縄は日本ではない」… ★6 [BFU★]
- 政府、株式の配当など金融所得を高齢者の医療保険料や窓口負担に反映する方針を固めた [バイト歴50年★]
- 中国国営メディア「沖縄は日本ではない」…★7 [BFU★]
- バービー、 台湾有事の発言の波紋で「たまったもんじゃない」「高市さんに真意は聞きたい」「国民に向けて説明してほしい」 [muffin★]
- ナイツ塙が指摘のローソンコーヒーカップ、ロゴ「L」で誤解生みデザイン変更へ 在庫使い切る3か月後にリニューアル [muffin★]
- 日本政府「高市総理の発言は問題ないと伝え、中国総領事のSNS投稿は問題があると中国に伝えました😊」 [931948549]
- 高市早苗、岸田政権(当時)に「台湾有事は日本の有事か」という質問をしていた [175344491]
- 【悲報】中国→日本行きの航空チケット、高市有事の影響で50万人分がキャンセルされる [834922174]
- ケンタッキーの○○○バーガーという予告がアレを想起すると話題に [523957489]
- んなっしょい🍬禁止🈲のお🏡
- 【悲報】早速高市首相のせいで全国の民泊でキャンセルラッシュwwwwwwwwwwww 経営者も嘆き「こんな事は初めてだ…」😲 [871926377]
