
242 Rozdział 8.
Struktury i wskaźniki
Oferujemy rabatową cenę
4,99 zł wielu prenumeratorom,
dlatego chciałem napisać funkcję
applyDiscount, która ustawia taką
wartość pola rate. Jednak funkcja
nie działa!
func applyDiscount(s subscriber) {
s.rate = 4.99
}
func main() {
var s subscriber
applyDiscount(s)
fmt.Println(s.rate)
}
Pamiętasz, jak w
rozdziale 3
.
próbowaliśmy napisać funkcję
double
,
która przyjmuje liczbę i ją podwaja? Po
zwróceniu sterowania przez tę funkcję
liczba wracała do pierwotnej wartości!
Wtedy dowiedziałeś się, że Go jest
językiem z przekazywaniem przez
wartość, co oznacza, że w parametrach
funkcji zapisywana jest
kopia argumentów ...