- 2008-01-28 (Mon) 9:40
- ActionScript3.0
flashrodさんの記事から、メソッドへの引数の渡し方について。
public function swap(a:Object, b:Object):void {
var tmp:Object = a;
a = b;
b = tmp;
}
こんなメソッドを定義して、
var a:Object = {
value: "abc",
toString: function():String { return this.value; }
};
var b:Object = {
value: "xyz",
toString: function():String { return this.value; }
};
swap(a, b);
trace("a=", a);
trace("b=", b);
こんな感じで実行しても、
a= xyz b= abc
こうならない。というお話。
ならないだろうとわかってはいるんですが、
言われてみれば参照渡しと言うならできるはず。
こういうところで説明ができない時点で、
なんとなく感覚でやってしまってるんだろうなぁ、と反省しなくては・・・。
結論としては、俗に言う「参照の値渡し」というやつなんですね。
C/C++で書くなら、
#include <stdio .h>
void swap(int* a, int* b){
int* tmp = a;
a = b;
b = a;
}
int main(){
int a = 1;
int b = 2;
printf("a=%d b=%dn", a, b);
swap(&a, &b);
printf("a=%d b=%dn", a, b);
return 0;
}
と、まぁ参照というより、ポインタ使ってるっぽい感じのイメージでいいんですかね。多分。
とりあえず、自分的には理解できてすっきり。
細かい言葉のあやみたいなところではあるんですが、
いつかこういったささいな部分ではまって、時間を無駄にするかもしれないし。
勉強になりました。
- Newer: [as3][FOAM]初めてのFOAM
- Older: [AS3]3d物理エンジン
Comments:1
- t-matsuda 08-01-30 (Wed) 0:44
-
どうも。81会でお世話になりました、t-matsudaです。
minaco氏に教えてもらってきました。このブログ書いてる方だったんですね、ちょい前からFeed読んでましたよ。
actionscript始めたばっかでまだまだ、わかんない事だらけなので
いろいろ勉強させてもらいます。また、飲みにでも行きましょう。
Trackbacks:0
- Trackback URL for this entry
- http://www.jinten.net/blog/archives/40/trackback
- Listed below are links to weblogs that reference
- [AS3]値渡しと参照渡し from Jinten Blog