Menu
CoddyTech

スライスのコピー

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: 2

copy関数は、コピー先のスライスに収まる要素数まで、かつコピー元にある要素数を超えない範囲で要素をコピーします。つまり、2つの長さのうち短い方の数だけコピーします。コピー元の方が短い場合、コピー先の残りの要素は変更されません。

challenge icon

チャレンジ

初心者

このチャレンジでは、copy関数を使って、あるスライスから別のスライスへ要素をコピーする練習をします。

2つのスライスがあります。果物の名前を含むsourceと、make([]string, 3)で作成された長さ3のスライスdestinationです。copy関数を使って、sourceからdestinationへ要素をコピーしましょう。

コピーした後、destinationスライスの内容を出力します。

自分で試してみよう

package main

import "fmt"

func main() {
	// 果物の名前を含む元のスライス
	source := []string{"apple", "banana", "cherry", "date"}
	
	// 3つの要素を格納できるdestinationスライスを作成する
	destination := make([]string, 3)
	
	// TODO: copy関数を使用してsourceからdestinationに要素をコピーする
	
	
	// destinationスライスを出力する
	fmt.Println("Destination slice:", destination)
}
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

基礎のすべてのレッスン

自分で練習してみよう: Goオンラインコンパイラ