Ruby 初心者スレッド Part 56©5ch.io
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん 転載ダメ©2ch.net
2014/12/13(土) 09:29:12.93ID:DLY4IovQ質問するときは、OSやRubyのバージョン、エラーメッセージを書いたほうがいいお
Ruby on RailsについてはWEBプログラミング板で
前スレ
Ruby 初心者スレッド Part 55
http://peace.2ch.net/test/read.cgi/tech/1403361584/
るりまサーチ (リファレンス検索)
http://rurema.clear-code.com/
Rubyist Magazine - るびま
http://jp.rubyist.net/magazine/
逆引きRuby
http://www.namaraii.com/rubytips/
0421406
2015/01/20(火) 18:05:32.81ID:tR2SZl1MKernel.send :define_method, :go do |
per_ary, layer=0, total_time=0 |
トップレベルで、define_methodを呼び出すのをやめて、
def go(per_ary, layer=0, total_time=0)
このように普通の関数に戻して、
関数内で使う変数を、すべてグローバル変数に替えたが、
やはり同じ現象が起こる。原因不明
0422デフォルトの名無しさん
2015/01/20(火) 18:09:03.35ID:bOdKTSkA例えば
ary = ("A".."D").to_a
ary2 = ary.dup
ary2[0] += "B"
だとary2だけ変更されるけど
ary2[0] << "B"
とか
ary2[0].downcase!
だと両方変更される
この時、aryとary2は別の配列オブジェクトだけど、それで参照される要素は同じオブジェクトだから
代入なら一方だけしか変更されないけど、参照されるオブジェクトの破壊的メソッドを呼び出すと両方変更される
定数が定数じゃないのはrubyの仕様
0423デフォルトの名無しさん
2015/01/20(火) 18:12:22.71ID:tR2SZl1Mそのまま変数に代入できないの?
.to_a は?
ary = ('A'..'D').to_a
["A", "B", "C", "D"]
0424デフォルトの名無しさん
2015/01/20(火) 18:15:39.95ID:M5BHFTcGevalじゃダメなの?
0425デフォルトの名無しさん
2015/01/20(火) 18:24:07.45ID:7ow9yZfBありがとうございます。
evalあったんですね(^_^;) あっさりできました。
ずっと#{ }でなんとかするのかと格闘してました。スレ汚しすみませんでした。
0426406
2015/01/20(火) 18:54:32.80ID:tR2SZl1Mary2 = $Person_ary[0..-1]
go(ary2)
このgoが再帰関数になっていて、引数に配列を渡していくから、
ずっと同じ配列をいじくっているのかな?
ary2 = $Person_ary[0..-1]
でもこの文で、すべての要素がコピーされて、
ary2と$Person_aryは、別々のオブジェクトにならないの?
0427406
2015/01/20(火) 19:10:13.93ID:tR2SZl1M>ary2 = $Person_ary[0..-1]
>でもこの文で、すべての要素がコピーされて、
>ary2と$Person_aryは、別々のオブジェクトにならないの?
object_idは異なっていた
0428デフォルトの名無しさん
2015/01/20(火) 19:11:36.56ID:bOdKTSkAary2[0]とPerson_ary[0]のオブジェクトIDを調べてみ
0429デフォルトの名無しさん
2015/01/20(火) 19:19:52.78ID:jzLWySUR答えてもらっても実践しないなら初めから質問なんかしなければいいのに。
0430406
2015/01/20(火) 19:39:26.27ID:tR2SZl1Mary2と$Person_aryの、object_idは異なっていたが、
ary2[0]と$Person_ary[0]の、object_idは同じだった!
もう気が狂いそう。爆発します
カタカタ、カタカタ、カタ、ドッカーン!
0431デフォルトの名無しさん
2015/01/20(火) 19:48:41.70ID:I5Fz89mC0432デフォルトの名無しさん
2015/01/20(火) 19:48:48.59ID:5Fj8tUhx>>422の人が丁寧に解説してくれてるだろ
0433デフォルトの名無しさん
2015/01/20(火) 19:51:03.94ID:q7S0YejK弁護はまかせろ
0434406
2015/01/20(火) 19:57:22.33ID:tR2SZl1Mでは、aa[1]に代入しても、
配列x,xxは変化しなかったのに、なぜ、
>>430 のような事が起きるの?
aa[1]に代入した瞬間に、
別のオブジェクトが作られるのかな?
aa = [1, 2, 3]
x = aa[0..100]
xx = aa[0..-1]
aa[1] = 'B'
p aa #=> [1, "B", 3]
p x #=> [1, 2, 3]
p xx #=> [1, 2, 3]
0435デフォルトの名無しさん
2015/01/20(火) 20:05:02.74ID:5Fj8tUhxだから>>422読めっての
0436406
2015/01/20(火) 20:19:04.50ID:tR2SZl1Mすべての要素をコピーして、関数に渡しているのですが、
Person_ary = ('A'..'D').to_a
ary2 = Person_ary[0..-1]
go(ary2)
def go(per_ary)
go(再帰関数に、また別の配列を渡す)
end
どこで、ary2, per_aryを変更しているのか、
変更箇所が見当たらない
そして知らぬ間に、まるで魔法のように、
Person_aryの'A'が、'AB'に変わってしまう
["A", "B", "C", "D"]
["AB", "B", "C", "D"]
0437デフォルトの名無しさん
2015/01/20(火) 20:25:57.00ID:JNlE/+5w首の上にカボチャでも載せてんですか
0438デフォルトの名無しさん
2015/01/20(火) 20:28:40.86ID:w3vLPuuc答えても無視して同じ質問ダラダラ繰り返すんだから邪魔で仕方がない
0439デフォルトの名無しさん
2015/01/20(火) 20:32:23.61ID:7DC6CjZy>>349あたりから読んでも同じことが言えるかな?
0440デフォルトの名無しさん
2015/01/20(火) 20:35:37.31ID:JNlE/+5w頭がついてないか空洞なんだと思ったけど違ったか?
0441デフォルトの名無しさん
2015/01/20(火) 20:36:27.21ID:7DC6CjZy0442デフォルトの名無しさん
2015/01/20(火) 20:44:23.29ID:q7S0YejK>>425
念のためだけど外部からの入力にevalしないでね
eval "[1, 2, `del yourfile`]" とかで死ぬから
0443デフォルトの名無しさん
2015/01/20(火) 21:24:14.75ID:4I0Y1qEsinclude Math
とするとyardの中にもMathにもlogというメソッドがあるため不具合が生じてしまいました
yardのlogはほとんど使わないしまた使われてもいないのでファイル中のlogを別の名前に置き換えて対処しているのですが、とても良い方法とは思えません
何かうまい方法はないでしょうか?
0444406
2015/01/20(火) 21:53:24.90ID:tR2SZl1M#=> ["A", "B", "C", "D"]
ary2 = $Person_ary[0..-1]
go(ary2)
def go(per_ary)
combi = per_ary.combination(2)
combi.each_with_index do |p_ary, i|
# per_ary[0] → p_ary[0]は同じobject_id
per_0 = p_ary[0]
何でこの代入が(値は'A')、同じオブジェクトやねん!
これぐらい別のオブジェクトにしろよ
$Person_ary[0] → ary2 → per_ary[0]
→ p_ary[0] → per_0
なんと、これらがすべて同じobject_id
per_0 << 'B'
per_0には'A'が入っているが、
最後にこれらがすべて、'AB'に変わってしまう!
ここまですべてが同じオブジェクトだって、誰がわかる?
0445デフォルトの名無しさん
2015/01/20(火) 22:03:00.40ID:tR2SZl1Mその関数だけ、
モジュール名を付けて呼び出せないの?
Math::log
0446デフォルトの名無しさん
2015/01/20(火) 22:06:10.20ID:B3TactEM恐らく誤って変更してしまっているのは配列ではなく、文字列のほう。
Rubyの文字列は変更可能。そして += と << が等価ではないのもそれに起因する。
「str<<式」はstrが参照する文字列自体を変更する。
「str+=式」はstr+式の新たな文字列を作成し、strが新たな文字列を参照するように変える。
0447デフォルトの名無しさん
2015/01/20(火) 22:10:24.86ID:4I0Y1qEsrequire 'foo'
require 'bar'
実際は上のように使っていて、
fooではrequire 'yard'、barではinclude Mathしており
どっちもモジュール名などを付けずに書かれているので困っているのです。
0448デフォルトの名無しさん
2015/01/20(火) 22:10:58.55ID:OvbknBRr文字列の変更可能性と定数の扱いで混乱しちまう。
0449デフォルトの名無しさん
2015/01/20(火) 22:14:39.33ID:q1aCw1+q初心者が嵌りやすいトラップだ。いい勉強になって良かったね
昔ruby trapっていうドキュメントがあったけど無くなっちゃったのか?
0450406
2015/01/20(火) 22:28:19.59ID:tR2SZl1Mcombi.each_with_index do |B, i|
C = B[0]
A[0] → B[0] → C
文字列が入っているとして、
これらが同じobject_idなのは、予想できんわ
0451デフォルトの名無しさん
2015/01/20(火) 22:33:30.37ID:mp2703SQ0452デフォルトの名無しさん
2015/01/20(火) 22:35:08.90ID:mp2703SQポインタの配列をコピーしても中身はコピーされないし
ポインタ自体をconstにしても参照先は書き換え可能だし
0453デフォルトの名無しさん
2015/01/20(火) 22:45:19.24ID:LYCYgqf6YARD が「トップレベル」の名前空間でメソッド log を宣言しているのが問題だね
さらに bar でも「トップレベル」でモジュール Math をインクルードしているから、
名前 log が衝突していると ....
YARD と bar、どちらの作者ともに作品がライブラリとして再利用される事に対する
想像力が欠けていた、あるいは思慮が足りなかったと言うしかない
もしも bar を作ったのが >>447 自身であるなら、
bar 全体を独自のモジュールとして定義し、
その中で Math をインクルードすれば衝突を回避できる(Math.log が優先される)
module Foo; include Math; .... end
そうでないなら、お手上げだなあ
0454デフォルトの名無しさん
2015/01/21(水) 01:22:41.56ID:nNlZ8uj4http://jbbs.livedoor.jp/study/3729/storage/1069408696.html#82
↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
この掲示板に優秀な書き込みをして、総額148万円の賞金をゲットしよう!(*^^)v
0455デフォルトの名無しさん
2015/01/21(水) 01:57:16.89ID:xWoGAr8y特に2次元で初期化しようと思ってうまく出来た事がない。
いつも結局バカみたいに代入することになる。
0456デフォルトの名無しさん
2015/01/21(水) 02:41:54.86ID:/GBHGoCO多次元の初期化は手間がかかって困る
0457デフォルトの名無しさん
2015/01/21(水) 03:15:12.53ID:qBatZcehイテレーター使ってる?
二次元配列を
Array.new(10, Array.new(3))
みたいにやっても駄目
Array.new(10){Array.new(3)}
ならちゃんと二次元配列になる
上の書き方だとArray.new(3)が呼び出されるのは一回だけで、その一つのオブジェクトをすべてが参照してる状態になってる
下だと要素の数分Array.new(3)が呼び出されて、それぞれが別のオブジェクトを参照してる状態になる
0458デフォルトの名無しさん
2015/01/21(水) 04:27:38.93ID:Jm/vxooPirb(main):001:0> mtx = Array.new(3) { |y| Array.new(2) { |x| [x, y] } }
=> [[[0, 0], [1, 0]], [[0, 1], [1, 1]], [[0, 2], [1, 2]]]
irb(main):002:0> puts mtx.map { |xs| xs.map {|(x, y)| format("(%d, %d)", x, y )}.join(', ') }.join("¥n")
(0, 0), (1, 0)
(0, 1), (1, 1)
(0, 2), (1, 2)
=> nil
irb(main):003:0>
0459デフォルトの名無しさん
2015/01/21(水) 11:01:19.39ID:NFFhaRBc>念のためだけど外部からの入力にevalしないでね
>eval "[1, 2, `del yourfile`]" とかで死ぬから
ありがとうございます。
そんな高度な事はしてないので問題ないのですが、考えてみると怖い命令ですね。
0460デフォルトの名無しさん
2015/01/21(水) 12:30:39.60ID:aA1tn61G0461デフォルトの名無しさん
2015/01/21(水) 21:20:45.16ID:UODHxGjGゆえにnilの代わりにカラ配列を使ってるような構造には弱い。
0462デフォルトの名無しさん
2015/01/21(水) 23:32:42.08ID:2ayQ13oI大抵は
(1..n).map{|i|(1..m).map{|j| i+j }}
みたいにmapで作るわ
0463デフォルトの名無しさん
2015/01/21(水) 23:46:58.80ID:e6Du7UL/関数型スタイルに近づくと配列をインプレースで更新すること自体あんまりやらなくなるからな
0464デフォルトの名無しさん
2015/01/22(木) 23:36:58.70ID:7mvG+vzBnilだとmethod_missingになっちまうし。
俺はnil?で場合分けする方が特異に感じる。
0465デフォルトの名無しさん
2015/01/23(金) 00:28:00.11ID:jEuXrIMXそうじゃなくて、使うときに作るんだよ
大抵、事前に配列を初期化する必要があるのは配列作った後で中身を更新する場合だ
0466デフォルトの名無しさん
2015/01/23(金) 07:55:08.06ID:0oMxYtZz亀だけど、他スクリプトの文字列配列を“任意記号でつなげた単なる文字列”にしといて、受け取る側でsplitする方法もある
多少面倒臭いけどeval乱用しなくて済むと思う
0467デフォルトの名無しさん
2015/01/23(金) 08:03:28.83ID:4FZvpJWIぜひ標準で欲しい
0468デフォルトの名無しさん
2015/01/23(金) 10:26:57.08ID:kLOpfBTA文 if 条件2
end
if修飾子(後置if)
これでも、文の構造を間違わないのには感心する。
たぶん、if,endの数を数えているのだろう
それに、++,-- のインクリメント・デクリメントが無い。
グローバル変数には、'$'を付ける。
内側のスコープで、外側の変数を使えない
これらにより、ややこしい間違いを防げるなど、
Matzはよく考えているな
0469デフォルトの名無しさん
2015/01/23(金) 11:33:14.50ID:jEuXrIMX初心者向けの本一冊読めば>>468でも作れるよ
0470デフォルトの名無しさん
2015/01/23(金) 15:30:18.97ID:rINQxVSH対処として本家メーリングリストを覗いてみたのですが・・
お馬鹿な質問してる人はほぼいないので迷惑がかかりそう・・
いまの対処法はサンプルコードを時間をかけて探す・・
その中に理解できないのがコードがあると、さらに積み重なり・・・ それを調べるとどんどんと深みにハマっていき
いったい何を探しているのか・・・ 泥縄式
0471デフォルトの名無しさん
2015/01/23(金) 15:36:10.47ID:ca5XUMYE0472デフォルトの名無しさん
2015/01/23(金) 16:06:21.22ID:3yNzan63答えられるかわからないけどためしに質問してみては
0473デフォルトの名無しさん
2015/01/23(金) 16:15:03.63ID:uMcR+6pK何か作りたいものを決めて、どうやって作るかという観点で学習したほうが速いと思う。
0474デフォルトの名無しさん
2015/01/23(金) 17:08:49.68ID:kLOpfBTA漏れが今から、初心者としての手本を見せてやろう↓
=begin
〜
〜
=end
ファイルAの中で、=begin,=endで囲まれた部分を、
すべて除いたものを、ファイルBに出力したい
そういうツールある?
無ければ、誰かソースコードを書いて!
お願いしま〜す
0475デフォルトの名無しさん
2015/01/23(金) 17:21:36.65ID:3yNzan630476474
2015/01/23(金) 17:39:05.42ID:kLOpfBTA>>470
ほらね。ものの10分ほどで、
誰かが書いてくれまっしゃろ
ttps://paiza.io/
そしてこれをここにコピペして、実行しますのよ
0477デフォルトの名無しさん
2015/01/23(金) 17:45:50.50ID:flsP1yuaコード読むとかまじめ過ぎんよ
0478デフォルトの名無しさん
2015/01/24(土) 07:15:10.75ID:CE2XF3sB0479デフォルトの名無しさん
2015/01/24(土) 10:28:15.06ID:sa+x1Xzypure windowsは諦めてvagrant使うのが一番手っ取り早い
0480デフォルトの名無しさん
2015/01/24(土) 17:50:50.26ID:zRrZ/E6bRuby開発者・まつもとゆきひろ氏の新言語「Streem」のソースコードを読んでみよう! 〜 文法と構造を規定する「lex.l」と「parse.y」
0481デフォルトの名無しさん
2015/01/24(土) 22:42:20.52ID:sZsKSyLoとおもったら言語設計の学習向けサンプルか
0482デフォルトの名無しさん
2015/01/24(土) 23:03:03.44ID:sa+x1Xzy今更C & yaccとか紹介されてもなあって感じ
こんなもんわざわざMatzが解説しなくてもどの教科書にも載ってるだろ…
0483デフォルトの名無しさん
2015/01/24(土) 23:13:51.32ID:4gU3kMxY0484デフォルトの名無しさん
2015/01/24(土) 23:33:26.92ID:sZsKSyLoMatzのは日経Linuxに載るそうな
0485デフォルトの名無しさん
2015/01/24(土) 23:41:25.90ID:uW+Hb/Mt自分は使う側だからと思ってる人も一度はトライすべき
だとわかっていながらやらずに10年が経った
0486デフォルトの名無しさん
2015/01/24(土) 23:57:28.38ID:sa+x1Xzy考え方には同意するが、勉強目的で処理系を作るなら字句解析や構文解析は手書きするべきだと思う。
他で役立つのって特にその部分だから。
0487デフォルトの名無しさん
2015/01/25(日) 00:20:22.56ID:J7dtxD4Gそうかぁ?
構文解析とか泥臭い部分はライブラリに投げた方が勉強する部分にフォーカスできると思うけどなー
lexとかyaccは実績も超がつくほどあるものなんだし
0488デフォルトの名無しさん
2015/01/25(日) 00:29:56.97ID:6mma36Hgあとはノードに対応する処理を適当に書いていくだけで、それこそ単純作業だわ
ソースコードのパースは再帰とか抽象化とかプログラミングの基礎体力を付けるにはいい練習だよ
0489デフォルトの名無しさん
2015/01/25(日) 00:33:47.61ID:J7dtxD4Gプログラミングと言語設計とは別の話だと思うが
0490デフォルトの名無しさん
2015/01/25(日) 00:45:12.52ID:DUp54GVi配列の要素は配列([...])、正の10進数(123)、ダブルクォート文字列("...")に限定
例 [1, 234, [5, "67", []], 8]
30分で解けたらこのスレ卒業
0491デフォルトの名無しさん
2015/01/25(日) 14:43:11.53ID:R3Fg53INなんか簡単にできるほうほうありませんか?
毎回ソースコードをダウンロードして解凍してgemをインストールしないとダメなんでしょうか?
0492デフォルトの名無しさん
2015/01/25(日) 17:00:44.18ID:n4z0u1el公式のSVNリポジトリからチェックアウトするようにしてもいいけど、
実運用でheadを使うのはさすがに危険だから結局バージョンは選ばなきゃいけないので大して手間変わらん
0493デフォルトの名無しさん
2015/01/25(日) 18:11:58.87ID:3aXiO/4Egit pullしたら楽でした
でもgit tagに2.6が含まれていませんでした
githubのredmineのtagを見に行ったら2.6.1まであったのに何故ですかね
0494デフォルトの名無しさん
2015/01/25(日) 18:39:45.60ID:KIPmV6lxbad response Not Found 404って出てきてできないんですが
どうしたらいいですが?
0495デフォルトの名無しさん
2015/01/25(日) 20:47:42.10ID:6mma36Hg公式のSVNリポジトリ使いなよ
gitのはあくまでミラー
0496デフォルトの名無しさん
2015/01/26(月) 17:03:01.35ID:5plsOsTaありがとうございました
0497デフォルトの名無しさん
2015/01/26(月) 19:42:21.97ID:vPTi7mVlこれ日曜から始まるようにする設定て何処でするんですか?
0498デフォルトの名無しさん
2015/01/26(月) 22:29:09.39ID:BphtuPQwhttps://groups.google.com/forum/#!forum/redmine-users-ja
0499474
2015/01/27(火) 10:05:23.11ID:giG1hU9r475のやり方だと、
=begin
〜
=end
〜この部分も、削除されてしまう
=begin
〜
=end
=begin,=end間は(=begin,=endも含めて)削除したいが、
=end,=begin間はそのまま残したい。HELP!
0500デフォルトの名無しさん
2015/01/27(火) 11:29:39.64ID:JO7zk1Y+0501デフォルトの名無しさん
2015/01/27(火) 17:05:12.78ID:AnZGR/ca「最初のbegin〜endしか削除されません」とか言ってきそう・・・
0502デフォルトの名無しさん
2015/01/27(火) 23:03:18.27ID:6gdvwZDa何か変なんですがこれはどういう現象なんでしょうか?遡って代入されてる?
a = b = 1
a = 3
p a #=>3
p b #=>1 bは弄ってない
p "-----"
a = b = []
a << 3
p a #=>[3]
p b #=>[3] 何も入れてないのに勝手に3入ってる
aとbを逆にしてもaに勝手に3入ります
0503デフォルトの名無しさん
2015/01/27(火) 23:34:18.96ID:w1lsmrbK一口で言えば、代入演算子(参照先変更)と<<演算子(参照先は変更しない)の違い
>a = b = 1
a と b が 1 という同一のオブジェクトを参照するようにする
>a = 3
a が 3 というオブジェクトを参照するよう変更する
>a = b = []
a と b が新規の、同一の空配列オブジェクトを参照するように変更する
>a << 3
a の参照先オブジェクト(b と同じ配列)に対して << メソッドを、3 を引数として呼び出す
その動作として、a の参照先オブジェクト(b と同じ配列)に 3 という要素が追加される
と言うわけで、勝手には入ってない
0504デフォルトの名無しさん
2015/01/27(火) 23:42:27.51ID:/EXITyOc例えば、
p a["山田","田中"] #=>8
p a["田中","山田"] #=>8
p a["山田","加藤"] #=>2
のような感じです
どのようにすればいいでしょうか?
0505デフォルトの名無しさん
2015/01/27(火) 23:52:53.45ID:ed+BP8Ek0506デフォルトの名無しさん
2015/01/28(水) 00:01:14.15ID:e5hkyOyGありがとうございます
やっぱりソートしてから引数にとるしか方法は無いんでしょうか…
呼び出したい時に一々ソートするのはスマートで無い気がして…
0507デフォルトの名無しさん
2015/01/28(水) 00:36:13.90ID:UCeJVedt小手先の実装のスマートさなんかどうでもよくなる
0508デフォルトの名無しさん
2015/01/28(水) 00:50:00.54ID:e5hkyOyGなるほどそうですね
ソートしてアクセスする構造をクラスでラップして使うことにします
ありがとうございます
0509デフォルトの名無しさん
2015/01/28(水) 06:54:30.56ID:PxKHvaRd返信遅れましたありがとうございます
代入って単純に引数与えるだけじゃないんですね
配列も"n"と同じようにリテラルぶっ込んでるだけだと思ってたのに複雑だ・・・
0510406
2015/01/28(水) 09:32:53.14ID:g/K+Ovy5Rubyでは、このようにいくら代入しても、コピーが作られず、
単に参照(変数のアドレス)がコピーされるだけだから、
同一のオブジェクトを指す
ここで、文字列の連結に、<< を使うと、
すべての変数が変わってしまう。
+ を使えば別のオブジェクトが作られる
ここで、b=10とすれば初めて、
bは別のオブジェクトとして作られる。Cow(Copy on write)
必要に迫られるまで、なるべく
新たなオブジェクトを作らないようになっているのだろう
オブジェクトの内容そのものを変える、
破壊的なメソッドを呼ぶ際は、同一のオブジェクトは、
すべて変更されてしまうので要注意
漏れも、<< で苦しんだ。この辺を見て
>>434 >>444
0511デフォルトの名無しさん
2015/01/28(水) 10:15:58.27ID:PxKHvaRd質問するときは原因箇所を絞って簡略化したほうがいいですよ
その経過で解決する事もありますし
0512406
2015/01/28(水) 11:14:40.77ID:g/K+Ovy5にも書いたけど、Rubyのさかのぼり代入は怖い
$a=b=c=d=3
ここで、d << 10 とするだけで、すべての変数が310になる。
この参照の連鎖は順次、
関数の引数に渡していっても、断ち切れない
グローバル変数までさかのぼって、変更されてしまう
0513デフォルトの名無しさん
2015/01/28(水) 11:46:52.90ID:H7DQugwdunlessなんて削除するべきだ
pとかよりもっとわかりやすい名前を付けるべきだ
0514デフォルトの名無しさん
2015/01/28(水) 11:54:27.66ID:slxhZiXo0515デフォルトの名無しさん
2015/01/28(水) 11:55:41.74ID:slxhZiXo彼らは多少頭のネジが緩いんで
0516デフォルトの名無しさん
2015/01/28(水) 13:03:50.23ID:g/K+Ovy5Pythonだと、print, pprint
だから面倒くさい
0517デフォルトの名無しさん
2015/01/28(水) 13:12:56.41ID:RMHK3Bx60518デフォルトの名無しさん
2015/01/28(水) 20:51:43.59ID:JcHJzKklさかのぼる、と考えるから破綻するんよ。
変数に入ってるのは、あくまで参照。それだけ頭に入れてれば破綻しない。
0519デフォルトの名無しさん
2015/01/28(水) 21:00:02.47ID:JcHJzKkl基本的にRubyの変数は「何かを指し示しているだけ」であり「中身は無い」
中身のように見えるものは「名もなき場所にある」
代入という操作をしたとき、変数は別の場所を指すように書き換わる
それ以外の操作は、中身に対して行われる
そんだけだよ
さかのぼり代入なんてことは何もしてない
同じ人を指さしてるのに、別人に見えたらおかしい
0520デフォルトの名無しさん
2015/01/28(水) 21:10:51.95ID:ncVbnS0H■ このスレッドは過去ログ倉庫に格納されています