スライスのコピー
CoddyのGOジャーニー「基礎」セクションの一部 — レッスン 82/109。
Goのcopy関数を使用すると、あるスライスから別のスライスへ要素をコピーできます。
ソーススライスとコピー先のスライスを作成します:
source := []int{1, 2, 3}
dest := make([]int, 2) // 長さ2のコピー先
// ソースからコピー先にコピーします
copied := copy(dest, source)
fmt.Println("Source:", source)
fmt.Println("Destination:", dest)
fmt.Println("Number of elements copied:", copied)結果:
Source: [1 2 3]
Destination: [1 2]
Number of elements copied: 2copy 関数は、コピー先のスライスに収まる数だけの要素のみをコピーします。
チャレンジ
初心者このチャレンジでは、copy 関数を使用して、あるスライスから別のスライスへ要素をコピーする練習をします。
2つのスライスがあります。果物の名前が含まれている source と、3つの要素分の容量を持つ空のスライスである destination です。あなたのタスクは、copy 関数を使用して source から destination へ要素をコピーすることです。
コピーした後、destination スライスの内容をプリントしてください。
チートシート
copy 関数は、あるスライスから別のスライスへ要素をコピーします:
source := []int{1, 2, 3}
dest := make([]int, 2) // 長さ2のコピー先
// ソースからコピー先へコピー
copied := copy(dest, source)
fmt.Println("Source:", source)
fmt.Println("Destination:", dest)
fmt.Println("Number of elements copied:", copied)copy 関数は、コピー先のスライスに収まる数だけの要素をコピーし、コピーされた要素の数を返します。
自分で試してみよう
package main
import "fmt"
func main() {
// 果物の名前が含まれるソーススライス
source := []string{"apple", "banana", "cherry", "date"}
// 3つの要素分の容量を持つコピー先スライスを作成
destination := make([]string, 3)
// TODO: copy関数を使用して、ソースからコピー先に要素をコピーする
// コピー先のスライスをプリント
fmt.Println("Destination slice:", destination)
}このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。