1 名前:デフォルトの名無しさん mailto:sage [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/ るりまサーチ (リファレンス検索) rurema.clear-code.com/ Rubyist Magazine - るびま jp.rubyist.net/magazine/ 逆引きRuby www.namaraii.com/rubytips/
411 名前:デフォルトの名無しさん mailto:sage [2017/12/18(月) 23:16:47.78 ID:LVUvAKSO.net] 初心者だからRubyとPythonの違いがわからんのだけど、どう違うんだ? Rubyがもっと流行ってもいいと思うんだけど
412 名前:デフォルトの名無しさん [2017/12/18(月) 23:28:55.91 ID:tRPcthrg.net] おいアンチ、 初心者騙してないでいい加減アンチスレに帰れよ おまえがリファクタリングできないのは判ったから
413 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 00:03:52.94 ID:iE/A7V+0.net] 自分でうまくソースコードに書き戻す処理が書けないのをRubyの所為にしてはダメだろう どうしてもやりたい場合はRipper2rubyってgemを使え
414 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 00:16:12.52 ID:si5W7uAD.net] 可能不可能の話に持っていくから(わざとやってる?) 話がややこしくなるんだよ 構文解析は、静的でも動的でもできる。 その時、どれだけの情報を得られるかっていうのは 型情報を書いてある静的のほうが多いのは明白 (動的のメリットは書かなくて良いことなんだから、動的の方が多くなることはない) 静的のほうがより多くの情報を得られる。 それがリファクタリングをする上での情報の多さにつながり、 リファクタリングを自動化する上での情報にもつながる。 静的のほうが予め書いておく情報が多い分、静的解析でわかることが多い。 動的だとわからない情報は、人がコードを見て推測するしかない 人の作業は遅い、リファクタリングの速度につながってくる リファクタリングが可能か不可能かの話じゃない 作業する時の速度の話
415 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 00:19:53.94 ID:iE/A7V+0.net] 素直にgemのripper2rubyを使え おまえには無理だから
416 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 00:21:21.03 ID:si5W7uAD.net] もちろんripper2rubyはリファクタリングをするためのgemではない
417 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 00:24:43.81 ID:cabpZd/N.net] rubymineを使ってないの? リファクタリングは簡単だよ
418 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 00:32:24.61 ID:si5W7uAD.net] 俺が言っても信用しないのだろうから、 washiiku.hatenablog.com/entry/2014/12/19/054914 > 上に書いたように変数の型をエディタが察してくれるので、 > 対応するメソッドなどにジャンプしたり、逆に使用されている > 箇所も一覧で表示できます(ただし静的言語ほど正確ではない) > JetBrains系ではお馴染みですがリファクタリングが便利です。 > スコープ内の変数名の変更が定番ですが、クラス名などグローバルな > 名前は型情報からプロジェクト全体のリファクタリングをしてくれます。 > (上述したとおり静的言語ほど正確ではないので、大規模な変更は実用的ではない) この正確でないというのが問題で、結局人が判断する部分が多くなる。 大規模な変更は実用的ではないのは何故かと言うと 大規模=変更箇所が多い=人が判断する場所が多いので 正しいこと判断するのが大変
419 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 00:33:30.38 ID:si5W7uAD.net] https://twitter.com/nagise/status/890031111828414464 RubyMineもかなり頑張ってくれるんですが、それでも原理的に限界があるので、 使った場合、漏れがあったり、あるいは過剰に変換してないか確認が必要だったりしますね(自分の経験上)。
420 名前:デフォルトの名無しさん [2017/12/19(火) 00:35:31.16 ID:OxL2RNB7.net] >>406 Rubyについて(アンチ専用) Part004 https://mevius.5ch.net/test/read.cgi/tech/1249737531/ おまえのスレに帰れ 二度と初心者を騙そうとするな
421 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 00:41:45.22 ID:cabpZd/N.net] 出来る出来ないの話じゃないって自分で言い出してからまだ30分も経ってないのに、 出来る出来ないの話に戻したな これでは誰もアンチを信じてくれないわ
422 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 00:46:31.62 ID:si5W7uAD.net] 動的言語がなぜリファクタリングに弱いかというと いつクラスの定義が定まるかを考えてみればわかる まずリファクタリングというのはソースコードを修正する そしてクラスの定義はソースコードから生成される この時、ソースコードからクラスの定義が単純に決まれば良いのだが 動的言語では、実行するまでクラスの定義が決まらない ならば実行すればいいと思うかもしれないが、何をどう実行すれば クラスの定義が定まるのかを知る方法がない つまりクラスをリファクタリングする場合、 クラスの完成形を知ることができないので、 人間が判断するしかなくなってしまい時間がかかる
423 名前:デフォルトの名無しさん [2017/12/19(火) 00:47:31.81 ID:OxL2RNB7.net] >>409 長文はいいから自分のスレへ帰れ ここはおまえの日記帳じゃない
424 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 00:48:21.71 ID:si5W7uAD.net] >>408 > 出来る出来ないの話に戻したな いつ俺が出来る出来ないの話に戻した? 実際にRubyMineを使っている人が、 出来ないって言ってるって話?
425 名前:デフォルトの名無しさん [2017/12/19(火) 00:49:30.71 ID:OxL2RNB7.net] >>411 アンチが初心者スレで暴れるなら
426 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 00:49:36.49 ID:si5W7uAD.net] >>410 > ここはおまえの日記帳じゃない そりゃ俺の日記帳じゃないよw みんなの日記帳だよ 便所の落書きなんていい方もされているが 俺はその言い方は好きではない
427 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 00:51:32.45 ID:cabpZd/N.net] https://mevius.5ch.net/test/read.cgi/tech/1249737531/ アンチはアンチ専用スレでやれ
428 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 00:57:25.70 ID:UYOJvaLF.net] 単発IDで自演しまくる自治厨騙りの荒らしには構うな スルーしろ
429 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 00:58:50.33 ID:cabpZd/N.net] 自演がばれてんぞ
430 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 00:59:26.95 ID:si5W7uAD.net] 単発IDお前やんw
431 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 01:01:02.38 ID:cabpZd/N.net] アンチスレで好きなだけやれ ここはお前のようなアンチのためのスレではない
432 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 01:02:55.81 ID:7WjlvYND.net] そろそろうざいからアンチはアンチスレへ帰れ
433 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 01:03:46.23 ID:si5W7uAD.net] 単発ID、自演ばれてるで?w
434 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 01:05:19.68 ID:cabpZd/N.net] 見えない敵と闘っていないでアンチスレへ帰れ そこなら好きなだけ自演しても誰も文句を言わないから
435 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 01:06:10.31 ID:si5W7uAD.net] はっきり言わないと理解できないのかな? 俺はアンチスレには行きません 何度言われてもね
436 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 01:09:10.98 ID:cabpZd/N.net] アンチやりたいならアンチスレへ行け ここは初心者のためのスレだ 初心者を騙すためのスレではない
437 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 01:10:01.09 ID:si5W7uAD.net] 神様「お前の願いは叶えられることはなかった」
438 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 01:11:14.38 ID:7WjlvYND.net] そもそもなんでアンチは発狂してんの? 顔真っ赤にしてないで落ち着けよ
439 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 01:12:07.22 ID:si5W7uAD.net] 発狂はしてないよw 面白いから書き込んでる
440 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 01:12:28.45 ID:cabpZd/N.net] そんなに初心者スレで荒らし行為やアンチをやりたいのか?
441 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 01:14:15.45 ID:si5W7uAD.net] 荒らしてないよ? Rubyでリファクタリングは静的言語よりも 大変だって話をしてる
442 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 01:15:12.45 ID:cabpZd/N.net] 初心者スレじゃないと話せないことなのか? アンチスレでは話せないのか?
443 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 01:17:14.70 ID:si5W7uAD.net] 初心者スレ以外でも話せるよ ただしアンチじゃないからね。Rubyの特徴を言っているだけ アンチスレ以外のRubyスレどこででも話をする
444 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 01:19:57.23 ID:cabpZd/N.net] お前のやってきたことはアンチ以外の何者でもないんだが これからも、同じ事を続けていく気か?
445 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 01:22:18.20 ID:si5W7uAD.net] はい
446 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 01:23:17.40 ID:cabpZd/N.net] つまり、他の人にアンチ行為と受止められていると判ってて、 故意に続けるわけだな? やめる気は無いのか?
447 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 01:23:40.17 ID:si5W7uAD.net] ない
448 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 01:25:41.82 ID:cabpZd/N.net] 他の人に故意に不快を与える行為を続けるという事だね 板やレスの利用等を理解しているか?
449 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 01:27:13.66 ID:si5W7uAD.net] うん
450 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 01:29:43.14 ID:cabpZd/N.net] つまり、わかった上でやっているという事だね それと、いまさらだがruby初心者?
451 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 01:30:38.45 ID:si5W7uAD.net] ウイ
452 名前:デフォルトの名無しさん [2017/12/19(火) 01:32:59.85 ID:cabpZd/N.net] つまりRuby初心者だから間違ったことを言っていたという事だね それはつまり、これからも間違った事を言い続けるって事かな?
453 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 01:33:45.75 ID:si5W7uAD.net] ノー
454 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 01:36:06.55 ID:cabpZd/N.net] その返答は、今後は反省して間違ったことを言わない、って事を意味しているのかな?
455 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 01:39:05.84 ID:si5W7uAD.net] __ , ‐' ´ ``‐、 / ̄:三} . /,. -─‐- 、. ヽ / ,.=j _,.:_'______ヽ、 .! ./ _,ノ `‐、{ へ '゙⌒ `!~ヽ. ! /{. / `! し゚ ( ゚j `v‐冫 , '::::::::ヽ、/ そんなことより野球しようぜ! . {.l '⌒ ゙ 6',! / :::::::::::::::/ __ . 〈 < ´ ̄,フ .ノー'_ , ‐'´::::::::::::::;/ (_ノ)‐-、 . ヽ.、 ` ‐", ‐´‐:ラ ':::::::::::::::: ;∠. ヽ_} ゙ヽ ,.r` "´ /:::::::::::::::::::ィ´ `ゝ !、 / / / :::::::::::::::: ; '´ /´\ / r'\ . i ! ::::::::::::::/ 墨 | .!::::::::/ヽ、.._!ヽ. ヽ、 { {:::::::::::;:イ / ‖i:::::::/:::::::::::::/ \ . ヽ ヽ,.ァ‐'´ /ヽ 二 ,/`ヽ、::::::::: /
456 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 01:41:22.11 ID:cabpZd/N.net] 君は、いままでアンチを繰り返し多くの人を故意に不快にさせてきたわけだが、 今後も続けるのかい?
457 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 01:42:11.51 ID:si5W7uAD.net] 飽きた、>>409 まで内容巻き戻すわ 動的言語がなぜリファクタリングに弱いかというと いつクラスの定義が定まるかを考えてみればわかる まずリファクタリングというのはソースコードを修正する そしてクラスの定義はソースコードから生成される この時、ソースコードからクラスの定義が単純に決まれば良いのだが 動的言語では、実行するまでクラスの定義が決まらない ならば実行すればいいと思うかもしれないが、何をどう実行すれば クラスの定義が定まるのかを知る方法がない つまりクラスをリファクタリングする場合、 クラスの完成形を知ることができないので、 人間が判断するしかなくなってしまい時間がかかる
458 名前:デフォルトの名無しさん [2017/12/19(火) 01:43:46.18 ID:cabpZd/N.net] ではもう一度聞こう 今後は反省して間違ったことを言わない、という意思はあるのかな?
459 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 01:45:58.37 ID:si5W7uAD.net] じゃまなので透明あぼーんした
460 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 01:50:12.56 ID:7ZIeceXv.net] そんなことよりJOI2017/2018の話しようぜ
461 名前:デフォルトの名無しさん [2017/12/19(火) 01:54:22.14 ID:RoMU0mit.net] アンチスレに帰れよアンチ
462 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 02:06:16.03 ID:cabpZd/N.net] Rubyについて知らない事を知ったふりして話してたわけか 道理で
463 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 03:08:47.58 ID:GcPOv6XA.net] Ripper.sexp_rawからRipper.sexpに戻すと:stmts_add等が削られて微妙にやりにくい 全部rawの方でいい気がするがRipper.sexpってどういう時に使うんだ?
464 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 04:03:20.54 ID:UdKVtF6e.net] あれてんなw 型の次は、リファクタリングかよ 初心者の内容か? 俺の場合GoFなんかで書き直したい病が持病です。 んでrspec漏れてしょうもないバグおこす。 ほどほどに持病と付き合おうw
465 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 04:45:08.67 ID:cabpZd/N.net] >>450 pで見る用に使ってる Ripper.sexp_rawはppで見ても長いから
466 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 05:28:28.56 ID:GcPOv6XA.net] やっぱり表示用なんだ それから出力された配列の操作なんだけど、 配列の中ごろ特定の要素を基に「上の配列に○○が在りかつ後ろの要素に△△があったら××」、 みたいな同定の仕方をしてるんだけど問題ある?
467 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 06:21:37.16 ID:a07C5OyP.net] 配列の操作ってそんなもんだろ
468 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 07:00:22.12 ID:ykexPK2V.net] リファクタリングで香ばしい展開になっててわろた オレがおっさんになったのが、たまたま住人がアホなのか、2ch民全体のレベルが下がったのか
469 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 07:28:41.13 ID:ZuB1zFT8.net] >>455 自治厨の振りした基地外が一人で自演しまくって荒らしてるだけだから無視な 荒らしの狼藉は>>252 参照
470 名前:デフォルトの名無しさん [2017/12/19(火) 07:38:28.19 ID:yvsoeKM9.net] >>455 Rubyはとっつきやすい分、ニワカとか、簡単だと思って挫折した勘違い君も多いからな。
471 名前:> リファクタリングにしても、用語の定義とか目的知らずに書いてるなあ、ってのばかり。 きちんと理解しようと思ったら、ガウディ本(CTMCP)で計算モデルを理解するのがお勧め。 あと「リファクタリング:Rubyエディション」とかで、以下を把握できる。 ・リファクタリングはプログラム改善に使われることが多い。 ・数多ある改善基準のうち、リファクタリングは何を対象にしているのか? ・改善手法は、計算モデルと、改善の目的により様々。 [] [ここ壊れてます]
472 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 10:23:42.83 ID:si5W7uAD.net] >>457 なんかリファクタリングを理解してないようにみえる。 リファクタリングと計算モデルがどうつながるのか説明してみ その後、あんたの意見と同等の話をしているサイトを言ってみ リファクタリングと計算モデルは ほとんどつながりがないことがわかるからさ
473 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 12:22:26.77 ID:B3Kk66cH.net] 結局、荒らしはアンチスレに帰らんかったのか そりゃアンチスレも落ちぶれるわ
474 名前:デフォルトの名無しさん [2017/12/19(火) 22:13:01.86 ID:5rvtlxA7.net] >>428 >Rubyでリファクタリングは静的言語よりも >大変だって話をしてる いいや、している話は: 「動的型付け言語は静的型付け言語よりも大変だ」 だよ その主張は(個人的には)認めるけど、それだけでRubyスレに 粘着するのは荒らし行為そのものではないかな? hissi.org/read.php/tech/20171219/c2k1Vzd1QUQ.html それだけ「動的型付け言語におけるリファクタリング」に関心があるなら、 >>107 で紹介した専用スレへ移動すべきだよ
475 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 00:18:03.50 ID:n7Ixbq8J.net] >>460 俺はそんなことは言ってないので他人の意見だね Rubyが大変なのはソースコードを読むときだよ。書くときは比較的楽。 楽の意味がわからないなら、タイプ数が少ないと言い換えても良い Rubyは書くときは楽で、読むときは大変 静的型付け言語はその逆 理由はまんまだが型という情報が書いてあるから。 情報を多く書かなければいけない静的型付け言語は大変で でも情報が多く有るから静的型付け言語はわかりやすい ただし前提として複数のモジュール(クラス等)から成り立ってる場合と 言ったほうが良いかもな。ローカル変数なんかは型が書いて無くても すぐ近くにコードがあって該当の関数しか見なくていいから型がなくても大丈夫 一番の問題は複数モジュールから成り立っていて、特に別ファイルに分かれている場合 こういうのはドキュメントとして型情報を書いておかないと、わけわからなくなる だけどドキュメントとして型情報書くなら、タイプ数は静的型付け言語より多くなってしまうので本末転倒 Rubyは書くときは楽(ドキュメントを書かないという前提)で、読むときは大変 ドキュメントを書くなら、それはソースコードに一元化した方がいいよって話になる
476 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 00:50:26.05 ID:gjXzJsOL.net] 中身スカスカの長文なんてよく書き込めるな 頭の中もスカスカしてそう
477 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 00:55:47.63 ID:4hmeAMNm.net] >>462 そのレスは何が言いたいのだ? そのレスの中身を教えてくれw
478 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 02:10:20.76 ID:wlycKVFQ.net] rubyの可読性のよさには感動する DSLとかすごい たまーにendだらけになるのは難点w
479 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 02:23:39.76 ID:Jv20jxkb.net] 動的にリファクタリングさせるコード書いてるけど、 書けないやつはrubymine使えば良くね?
480 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 02:51:18.20 ID:s+zCj7ov.net] 配列の操作そのものが難しいと勘違いしてるんじゃないか? 配列の操作に使うコードって大概は下みたいに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
481 名前:デフォルトの名無しさん [2017/12/20(水) 05:23:54.83 ID:Jv20jxkb.net] 配列が苦手とか言われても パーサから順にイベントを渡されて処理するより明らかに難易度低いだろ
482 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 06:54:28.40 ID:6Esz8d8C.net] 今のところ、リファクタリングについて誰ひとり説明できてないぞ? もっとシンプルに表現できるだろw
483 名前:デフォルトの名無しさん [2017/12/20(水) 08:05:26.87 ID:DZ3d9p1Y.net] >>468 というお前さんも説明出来ない訳だが。
484 名前:デフォルトの名無しさん [2017/12/20(水) 08:07:18.11 ID:DZ3d9p1Y.net] >>458 数十レスも書いといて「リファクタリングとはこういうものだ」とすら書けない奴が何か言ってる。
485 名前:デフォルトの名無しさん [2017/12/20(水) 08:45:35.24 ID:Za3FAu+s.net] おい無職 自演はやめとけ
486 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 14:31:38.22 ID:Za3FAu+s.net] 毎朝7時8時から書き込める荒らしは何の仕事してるんや?
487 名前:デフォルトの名無しさん [2017/12/20(水) 18:57:50.54 ID:2lbW5JOk.net] RubyVM::InstructionSequence.compile("class Hoge end").eval のコードを実行したら直後に p Hoge.new って問題無く書けるのか コンテクストが別々だと勘違いしてた
488 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 22:34:07.59 ID:4hmeAMNm.net] >>470 リファクタリングを理解してませんと認めたってことでOKだね
489 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 22:35:24.96 ID:4hmeAMNm.net] >>472 俺は出勤が9時だからだよw 会社まで30分
490 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 22:48:45.50 ID:4hmeAMNm.net] >>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>' お前がそれじゃ、配列は難しいという結論にしかならんぞ
491 名前:デフォルトの名無しさん mailto:sage [2017/12/
] [ここ壊れてます]
492 名前:20(水) 22:56:44.83 ID:4hmeAMNm.net mailto: >>468 > 今のところ、リファクタリングについて誰ひとり説明できてないぞ? > もっとシンプルに表現できるだろw ソフトウェアの外部的振る舞いを保ちつつ、理解や修正が簡単になるように、内部構造を改善すること 補足を追加するならば、 振る舞いを保てていればいいので、アルゴリズムを変えてもOK というか、無駄があったりしてわかりにくいアルゴリズムを 理解や修正が簡単になるように書き換えることもリファクタリングの一つ 何が言いたいかというと、リファクタリングはパースした結果が 一致するように書き換えることではないということ パースできたからといって、リファクタリングができたことにはならない [] [ここ壊れてます]
493 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 23:30:14.73 ID:nhQOfr/3.net] 2.5まで後5日
494 名前:デフォルトの名無しさん [2017/12/21(木) 01:18:36.01 ID:l5/5gdQz.net] >>477 アンチスレへ帰れ おまえが働いていないのはわかったから
495 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 01:42:59.97 ID:prpojwIY.net] >>479 いい加減学習しよう 422 自分:デフォルトの名無しさん[sage] 投稿日:2017/12/19(火) 01:06:10.31 ID:si5W7uAD [10/23] はっきり言わないと理解できないのかな? 俺はアンチスレには行きません 何度言われてもね
496 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 02:12:25.62 ID:IcTBGDe8.net] 自演ばれてんぞ
497 名前:デフォルトの名無しさん [2017/12/21(木) 02:49:55.63 ID:l5/5gdQz.net] >>480 初心者を騙していないではやくアンチスレへ帰れ デマばかり垂れ流しやがって
498 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 03:03:06.96 ID:h5j2wgPh.net] 例えば、構造やサイズが変わる多次元配列の要素を辿って行く必要がある場合、 添え字だけ集めて一括指定で辿れる様にするのって普通?
499 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 11:43:09.31 ID:XGDp/jet.net] >>477 はい。正解
500 名前:デフォルトの名無しさん [2017/12/21(木) 12:10:12.13 ID:ow9tew52.net] >>477 >ソフトウェアの外部的振る舞いを保ちつつ、理解や修正が簡単になるように、内部構造を改善すること オブジェクト指向知らないやつがググってコピペか・・・つまらん。
501 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 13:37:15.11 ID:K/addjJ3.net] >>483 def pickup(a,b,c,d) a[b][c][d] end みたいな? あ、これじゃ次元数が固定だからダメなのか
502 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 14:41:34.48 ID:nqxJQXq0.net] Array#dig
503 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 18:29:48.77 ID:ztrEyuDD.net] 文字列に対して ・0〜9の一桁の数であれば頭に0を付け足す(例:00,01 ・10以降はそのまま という処理を行いたいんですが、正規表現でスパッとかけたりするんでしょうか イメージとしては text = "9"なら09 text = "10"なら10 として出力(print)がしたいです gsubで置換できないか試しているのですがうまいこといかず・・・ アドバイス頂けますと幸いです
504 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 18:34:23.75 ID:2OtOKx8R.net] 正規表現よりも sprintfフォーマットを使おう puts "%02d, %02d,%02d,%02d" % [1,5,10, 100] #=> 01, 05,10,100
505 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 18:34:49.31 ID:ZdPTZj/x.net] sprintf "%02d" % 9 sprintf "%02d" % 10
506 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 18:51:00.27 ID:2OtOKx8R.net] ちなみにあえてgsubでやるなら '1'.gsub(/^(?=\d$)/, '0') #=> "01" '42'.gsub(/^(?=\d$)/, '0') #=> "42"
507 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 18:51:08.76 ID:8yE94KQ4.net] %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"
508 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 19:24:42.40 ID:gRGJJy1x.net] ありがとうございます!sprintf、こういう風に使えるのですか。便利ですね・・・ 正規表現での場合も教えていただきありがとうございました 勉強になりましたm(_ _)m
509 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 19:26:00.72 ID:gRGJJy1x.net] >>493 すみません、ID変わってますが>>488 です
510 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 19:32:53.88 ID:aIK1VRoC.net] 正規表現は後で泣くからなるべく使わないほうがいい。 もし使うのなら 複雑のは避けて シンプル+シンプルと組み合わせて使うといい。
511 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 20:20:34.35 ID:prpojwIY.net] おい >>466 配列操作簡単なんだろう? バグ修正はまだか?