解決したいこと
構造体に入っている値を、型をラップした別の構造体に詰め替えたいです。
自分で色々と試したのですが、どうしても想定の挙動のコードが書けず、質問いたしました。
Goに詳しい方、ご教授いただけますと幸いです。
実際のコード
student1
構造体に入っている値を、student2
構造体に詰め替えたいです。
詰まっている点は、student1
構造体のlanguages
フィールドは[]string
で定義しているのですが、
詰め替え先のstudent2
構造体のlanguages
フィールドは[]string
ではなく、language
構造体を定義し、ラップされている状況です。
go
1type student1 struct { 2 id int 3 name string 4 languages []string 5} 6 7type student2 struct { 8 id int 9 name string 10 languages []*language 11} 12 13type language struct { 14 id int 15 language string 16} 17 18func refill() *student2 { 19 s1 := &student1{ 20 id: 1, 21 name: "田中", 22 languages: []string{ 23 "Golang", 24 "Java", 25 }, 26 } 27 28 // 試したコード 29 // var sampleLanguages []*language 30 // for _, language := range s1.languages { 31 // for _, v := range sampleLanguages { 32 // v.language = language 33 // } 34 // } 35 36 // student1 構造体に入っている値を student2 構造体に詰め替えたい 37 s2 := &student2{ 38 id: s1.id, 39 name: s1.name, 40 // こちらの languages が student1 と student2 で型が異なり、詰め替え方が分からず詰まっています... 41 languages: , 42 43 // 試したコード 44 // languages: append(sampleLanguages, sampleLanguages...), 45 } 46 47 return s2 48} 49 50func main() { 51 s := refill() 52 fmt.Println(s) 53}
想定の出力結果
❯ go run main.go &{1 田中 [Golang, Java]}

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/11/13 15:40 編集