- 579 名前:はちみつ餃子 mailto:sage [2025/08/22(金) 10:34:20.59 ID:s1oN92u00.net]
- Python でも返却値として複数の値を返すことは出来ない。
Python で return にカンマ区切りで複数の式を書くとタプルになってる。 受け取る側で複数の変数を書いておけばタプルが分配 (unpack) されたりはするけど…… 関数が返却しているのはあくまでもひとつの値という理屈。 複数の値 (いわゆる多値) を関数が返せる言語はそれほど多くない。 LISP 系は多値のサポートがあることが多いけどそれ以外だと Go くらいじゃないかな? (マイナー言語だとわからんけどよく知られている主要な言語にはほとんどないと思う。) シンタクス的には C++ で return にカンマ区切りで複数の値を渡そうとしたとき、 つまり return 1, 2, 3; というように書いたときのカンマはカンマ演算子として解釈される。 カンマ演算子は左辺の結果を捨てる (評価はする) ので 3 だけが返却値になる。 C++ で複数の値をひとまとめにするには波括弧で囲む記法があって std::tuple<int, int, int> foo(void) { return {1, 2, 3}; } というように書けるんだが…… この波括弧は初期化の記法であってタプルのリテラルというわけではないのでそこんところは注意。
|

|