Aktywne Wpisy

WolnyBLN +58
Mąż chyba nie jest najostrzejszym ołówkiem w piórniku XD
źródło: 1000006325
Pobierz
wezsepigulke +191
Podał się do ojca
źródło: temp_file593738859201754426
PobierzSkopiuj link
Skopiuj link
źródło: 1000006325
Pobierz
źródło: temp_file593738859201754426
PobierzRegulamin
Reklama
Kontakt
O nas
FAQ
Osiągnięcia
Ranking
a := []int{1, 2, 3, 4, 5}lo, hi := a[:2], a[2:]
lo = append(lo, 6, 7, 8) // Ojoj, zamazuje `lo[2:5]`!
fmt.Printf("%v %v\n", lo, hi) // Wypisuje `[1 2 6 7 8] [6 7 8]`
#golang #programowanie
Jak Wy w tym możecie programować?
Przecież przy tym PHP to dobrze zaprojektowany język.
let a = [1, 2, 3, 4, 5];let (lo, hi) = a.split_at(2);
let lo = lo.iter().chain(&[6, 7, 8]).collect::<Vec<_>>();
println!("{:?} {:?}", lo, hi);
Masz slice, dopisujesz do niego nowe elementy na końcu, a inny slice zostaje nadpisany. Cholernie niebezpieczne i raczej mało kto się tego spodziewa. Jeśli już, to bardziej spodziewałbym się że "spooky action at a distance" może nastąpić w wyniku modyfikacji elementów slice'a, a nie dopisania nowych.
@Krolik: https://pl.wikipedia.org/wiki/Wska%C5%BAnik_(typ_danych)
https://en.wikipedia.org/wiki/Pointer_(computer_programming)
Zalinkowalem, bo wygladasz na zaskoczonego, ze wziales wskaznik, zmieniles pare wartosci w sasiednich adresach, a nastepnie zdziwiles sie, ze wartosci w sasiednich adresach sie