Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package main
- import (
- "fmt"
- )
- type Foo struct{
- Bars []Bar
- }
- type Bar struct {
- name string
- }
- func main() {
- foo := Foo{[]Bar{
- Bar{"Bar1"},
- Bar{"Bar2"},
- Bar{"Bar3"},
- Bar{"Bar4"},
- Bar{"Bar5"}}}
- fmt.Printf("foo: %v\n",foo)
- fmt.Println()
- bars := foo.Bars[:]
- // Check if same mem location
- fmt.Printf("foo.Bars location: %p\n", foo.Bars)
- fmt.Printf("bars location: %p\n", bars)
- fmt.Println()
- // In-place delete of element
- for i:= len(bars)-1; i >= 0; i--{
- if (bars[i].name == "Bar3"){
- copy(bars[i:], bars[i+1:])
- bars[len(bars) -1] = Bar{}
- bars = bars[:len(bars) -1]
- foo.Bars = append(bars)
- }
- }
- fmt.Printf("foo.bars: %v\n",foo.Bars)
- fmt.Printf("bars: %v\n",bars)
- // Check if same mem location
- fmt.Printf("foo.Bars location: %p\n", foo.Bars)
- fmt.Printf("bars location: %p\n", bars)
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement