各言語の複数戻り値
知っている範囲で関数から複数の戻り値を返したいなーって思ってちょこちょこ調べている。少しまとめておこうと思います
私が一番好きなのはjavascript(言語自体は嫌い)
function my_swap(x, y){ var r; r = { after_x:y, after_y:x }; return r; } a = my_swap(1, 2); console.log(a.after_x); //2 console.log(a.after_y); //1
一つのオブジェクトを返しているので正確には複数戻り値と言わないのかもわかりませんが。
rubyはそのまま複数返せるらしい。配列として返している扱いらしいです。
def my_swap(x, y) return y, x #return [y, x] end a, b = my_swap(1, 2) print(a) #2 print(b) #1
pythonもrubyと似たようなもんらしい。ただしこっちはタプル型で返ってきているとか
def my_swap(x, y): return y, x a, b = my_swap(1, 2) print a #2 print b #1
関数で複数の返り値を返す方法 - おっぱいそん!
jsっぽく戻り値を書く方法もちゃんとある。
Processingはない(javaベースなので)
Arduinoもない(Cベースなので)
processingとArduinoはそもそもグローバル変数が多くなりがちな言語なので特殊かな。
ちなみにopenframeworksもない?(C++なので)
需要なさそうだけどVBAでどう複数戻り値を得るかというと配列として返せる
Function MySwap(X As Integer, Y As Integer) As Variant Dim R(1) as Variant R(0) = Y R(1) = X MySwap = R End Function Dim A As Variant A = MySwap(1, 2) MsgBox A(0) '2 MsgBox A(1) '1
Cのポインタ的にも返せる(これを返しているというのかは別として)。