[解決済み] Goで配列をスライスに変換する
2023-04-13 08:01:02
質問
これはかなり一般的なことのように思われ、インターウェブ上で豊富な例があります。
[32]byte
を
[]byte
.
外部ライブラリから呼び出す関数で、配列を返すものがあります。
func Foo() [32]byte {...}
次に、その結果を別の関数に渡して、さらに処理する必要があります。
func Bar(b []byte) { ... }
残念なことに、もし私が
d := Foo()
Bar(d)
私は
cannot convert d (type [32]byte) to type []byte
すること
[]byte(d)
はあまりよくありません。 特にデータのコピーを作成せずに、これを行うにはどうすればよいでしょうか(私が行っているのはデータを渡すだけなのに、このデータをコピーするのは馬鹿げているように思えます)。
どのように解決するのですか?
これは動作するはずです。
func Foo() [32]byte {
return [32]byte{'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'}
}
func Bar(b []byte) {
fmt.Println(string(b))
}
func main() {
x := Foo()
Bar(x[:])
}
また、基礎となるバッファのコピーを作成しません。
関連
-
[解決済み] Goでint値をstringに変換する方法は?
-
[解決済み] ゼロ終端のバイト配列を文字列に変換するにはどうすればよいですか?
-
[解決済み] スライスのメソッドを含む
-
[解決済み】マップからキーのスライスを取得する
-
[解決済み】空のスライスを初期化する正しい方法
-
[解決済み】インターフェースのスライスを変換するタイプ
-
[解決済み] time.Sleepを使わずにすべてのゴルーチンが終了するのを待つには?
-
[解決済み] Goプロジェクトの賢明なレイアウト方法とは [終了しました]。
-
[解決済み] 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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] オブジェクトのプロパティを二重引用符で囲んで使用するには?
-
[解決済み] Goプログラムで静的リソースをバンドルする最良の方法は何ですか?
-
[解決済み] Goで関数の名前を取得するには?
-
[解決済み] os.Exit()とpanic()はいつ使うのか?
-
[解決済み] Go で子プロセスの標準出力パイプをリダイレクトする
-
[解決済み] Goでマップをクリアするには?
-
[解決済み] テキストファイルの読み方を教えてください。重複
-
[解決済み] gc」と「gccgo」の主な相違点は何ですか?
-
[解決済み] 構造体のプロパティに名前でアクセスする
-
[解決済み] 遅延呼び出しに対応した囲碁プログラムを終了させるには?