[解決済み] Goのペア/タプルデータ型
2022-03-02 05:31:29
質問
を行いながら
ツアー・オブ・ゴーの最終練習
のキューが必要だと思いました。
string
,
int
) のペアです。これなら簡単ですね。
type job struct {
url string
depth int
}
queue := make(chan job)
queue <- job{url, depth}
しかし、ここで私は考えました。Goには組み込みのペア/タプルのデータ型があるのだろうか?をサポートしています。 複数の値を返す しかし、AFAICTでは、生成される複数の値のタプルはGoの型システムでは一級市民ではありません。そうなんですか?
という部分に関しては、(Pythonプログラマーの視点から)明白な構文があります。
queue := make(chan (string, int))
はうまくいきませんでした。
解決方法は?
Goにはタプル型はありません。また、あなたの言うとおり、関数が返す複数の値は一級のオブジェクトを表さないのです。
Nickの回答は、任意の型を扱う似たようなことをする方法として
interface{}
. (タプルのようにインデックスを作成するために、構造体ではなく配列を使用したかもしれませんが、重要な考え方は
interface{}
型)
私の別の回答では、匿名構造体を使用して型を作成することを回避する同様の方法を示しています。
これらのテクニックはタプルの特性をいくつか持っていますが、いいえ、タプルではありません。
関連
-
[解決済み】golangでデータ構造をディープコピーする
-
[解決済み] リスト/タプルを指定されたインデックスにある要素でソートするには?
-
[解決済み] JavaでC++のPair<L,R>に相当するものは何ですか?
-
[解決済み] Pythonでリストをタプルに変換する
-
[解決済み] Goでオブジェクトの型を見つけるには?
-
[解決済み] なぜPythonにはタプルの内包がないのですか?
-
[解決済み】タプルに変数を追加する
-
[解決済み】Tupleクラスで "Item1", "Item2 "よりも優れた命名法
-
[解決済み】Goでディレクトリを一覧表示する
-
[解決済み】スライスの最後の要素を取得する方法は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】vsコードの解決方法 - goplsコマンドが使用できません。
-
[解決済み] go run: 非メインパッケージは実行できません
-
コンパイル: バージョン "" は go ツールのバージョン "" と一致しません。
-
[解決済み] goインストールとは何ですか?
-
[解決済み] このキャスティングはgolangで行われているのでしょうか?
-
[解決済み] go get を使って特定のバージョンのパッケージをインポートするにはどうすればよいですか?
-
[解決済み] golangでnilはどういう意味ですか?
-
[解決済み】Goのタグはどのような用途に使われますか?
-
[解決済み】Goでディレクトリを一覧表示する
-
[解決済み】スライスの最後の要素を取得する方法は?