はじめに 通常の言語だと、多値とdestructuring(分配束縛)は別物で、単一の構造体をバラす構文が入っているという感じのことが多い(schemeなどではそれとは全く別に多値を返す事ができるけれど。一方でbindingのための構文が別途用意されている)。例えばpythonの例でいうと以下の様な感じ。 vs = (1, 2) x, y = vs 単一のタプルをdestructuringした結果、それぞれの値が変数に束縛されるという形。 これがgolangでも同様だと思っていたのだけれど。実はちょっと違ったという話。 ふつうの分配束縛(のように見える) golangでも多値を返す関数が定義できる(pair)。そしてpythonの例と同様の理屈でdestructuringが行われ、複数の引数を取る関数(add)に渡され使われる(ように見えていた)。 package main import