PHP では、スライス (Slice) は、配列またはスライスから要素の一部を選択できるようにする一般的に使用されるデータ構造です。ただし、場合によっては、スライスを変更し、変更した値を元のスライスに追加する必要があります。この操作は、スライス コピーの値を変更し、array_splice 関数を使用して元のスライスに変更したコピーを追加することで、PHP で可能になります。この記事では、このメソッドを使用してスライスの変更と追加操作を実装する方法を詳しく説明します。
スライスをコピーし、スライス コピー内の項目の値を変更し、そのコピーを元のコピーに追加する関数を作成します。コードはスライスのコピーだけでなく、元のスライスも変更しているようです。
遊園地に行きます
リーリー実際に見たもの
リーリー何を期待していますか
import "fmt" type item struct { name string number int } func main() { names := []string{"a", "b"} numbers := []int{1, 2} items := []*item{} for _, name := range names { item := &item{name: name} items = append(items, item) } for n, i := range numbers { if n > 0 { fmt.println(n, "make a copy of the items") itemcopies := make([]*item, len(items)) copy(itemcopies, items) fmt.println(n, "set the numbers on the copies") for _, item := range itemcopies { item.number = i } fmt.println(n, "append the copies to the original") items = append(items, itemcopies...) } else { fmt.println(n, "first pass set all the items to the first number") for _, item := range items { item.number = i } } } for n, i := range items { fmt.printf("%d %+v\n", n, *i) } }
@jimb は正しいです。ポインタをコピーしてください。
struct item に属する copy 関数を定義して新しいコピーを作成することをお勧めします
以上がスライスのコピーの値を変更し、元のスライスに追加しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。