Najlepszy samouczek Idź zmienne lingwistyczne W 2024 r. W tym samouczku możesz dowiedzieć się Typy wartości i typy referencyjne,Krótka forma, użyj: = operator przypisania,
Zmienny z matematyki, języków komputerowe mogą być przechowywane lub wyniki obliczeń mogą być reprezentowane wartości abstrakcję. Zmienne mogą być dostępne za pośrednictwem nazwy zmiennej.
Idź język nazwy zmiennych składają się z liter, cyfr, podkreśleń, z których pierwsza litera nie jest numeryczne.
Ogólna forma zmienna jest zadeklarowana za pomocą słowa kluczowego var:
var identifier type
Po pierwsze, należy określić typ zmiennej, deklarację jeśli zadanie, użyj domyślnego.
var v_name v_type v_name = value
Drugi, na podstawie wartości samostanowienia typów zmiennych.
var v_name = value
Po trzecie, z pominięciem var, uwaga: zmienna = Lewy nie powinny być zadeklarowane w miejscu, w przeciwnym razie spowoduje to błąd kompilatora.
v_name := value // 例如 var a int = 10 var b = 10 c : = 10
Przykłady są następujące:
package main var a = "w3cschool本教程" var b string = "w3cschool.cc" var c bool func main(){ println(a, b, c) }
Powyższe przykłady implementacji wyników:
w3cschool本教程 w3cschool.cc false
//类型相同多个变量, 非全局变量 var vname1, vname2, vname3 type vname1, vname2, vname3 = v1, v2, v3 var vname1, vname2, vname3 = v1, v2, v3 //和python很像,不需要显示声明类型,自动推断 vname1, vname2, vname3 := v1, v2, v3 //出现在:=左侧的变量不应该是已经被声明过的,否则会导致编译错误 // 这种因式分解关键字的写法一般用于声明全局变量 var ( vname1 v_type1 vname2 v_type2 )
Przykłady są następujące:
package main var x, y int var ( // 这种因式分解关键字的写法一般用于声明全局变量 a int b bool ) var c, d int = 1, 2 var e, f = 123, "hello" //这种不带声明格式的只能在函数体中出现 //g, h := 123, "hello" func main(){ g, h := 123, "hello" println(x, y, a, b, c, d, e, f, g, h) }
Powyższe przykłady implementacji wyników:
0 0 0 false 1 2 123 hello 123 hello
Wszystkie takie jak int, float, bool i ciąg te podstawowe typy są wszystkie typy wartości, przy użyciu tych typów zmiennych bezpośrednio do wartości zapisanej w pamięci:
Podczas używania znaku równości =
, gdy wartość zmiennej jest przypisana do innej zmiennej, takich jak: j = i
, jest w rzeczywistości wartość pamięci i będzie kopia:
Można uzyskać adres pamięci zmiennej I & I, na przykład: 0xf840000040 (każdy adres może być inny). Wartość przechowywana typu wartości zmiennej na stosie.
Adres pamięci będzie zmieniać się w zależności od urządzenia lub nawet sam program na różnych maszynach po wykonaniu mają różne adresy pamięci. Ponieważ każda maszyna może mieć inny układ pamięci, a przypisanie pozycja może się zmieniać.
Bardziej złożonych danych często wymagają stosowania wielu słowy, dane te są zwykle przechowywane stosując oznaczenie typu.
Typ referencyjny Zmienna R1 R1 jest wartość przechowywana w pamięci adres gdzie (cyfrowe) lub pozycja adres pamięci pierwsze słowo się znajduje.
Adres pamięci nazywa się wskaźnik, który faktycznie istnieje jeszcze jedno słowo.
W odniesieniu do wielu rodzajów wskaźnik słowo może być w sąsiadujących adresów pamięci (układ pamięci jest ciągły), który jest obliczenie najbardziej wydajny sposób przechowywania, to może być przechowywany w pamięci, czyli rozproszone każde słowo wskazuje, gdzie następnego adresu pamięci słowa.
Gdy instrukcja przypisania r2 = R1, tylko odwołania (adres) jest kopiowany.
Jeżeli jest to wartość R1 zostanie zmieniona, wówczas wartość wszystkich cytowań zostaną zmodyfikowane do punktu, w tym przypadku, r2 również wpływ.
Wiemy, że można automatycznie wnioskować typ zmiennej jest inicjowany przez zmienna systemowa jest pominięty, oświadczenie napisane na kluczowych deklaracja var jest rzeczywiście nieco zbędny, więc można w skrócie je jako: = 50 lub b: = false.
a i b typy (int i Bool) zostaną automatycznie wywnioskować kompilatora.
Jest to korzystna postać z wykorzystaniem zmiennych, lecz może być stosowany wyłącznie w korpusie funkcji, nie może być stosowany do deklarowania o przyporządkowaniu do zmiennych globalnych. Użyj operatorów: = może skutecznie stworzyć nową zmienną o nazwie oświadczenie inicjalizacji.
Jeśli ten sam fragment kodu, nie możemy ponownie użyć tej samej nazwy dla zmiennej rachunku inicjującego, na przykład: a: = 20 nie jest dozwolone, kompilator wyświetli błąd żadnych nowych zmiennych po lewej stronie: =, ale = 20 jest możliwe, bo to jest ten sam zmienna jest przyporządkowana nowej wartości.
Jeśli używamy go przed zdefiniować zmienną A, otrzymasz błąd kompilacji undefined,: a.
Jeśli zadeklarujesz zmienną lokalną, ale nie są wykorzystywane w tym samym bloku kodu w nim, otrzymasz błąd kompilacji, tak jak w poniższym przykładzie tym o zmiennej a:
func main() { var a string = "abc" fmt.Println("hello, world") }
Spróbuj skompilować ten kod dostanie błądzadeklarowana i nie używany.
Ponadto, w celu uzyskania prostego przypisania nie wystarcza, to wartość ta musi być stosowany, tak wykorzystanie
fmt.Println("hello, world", a)
usunie błędów.
Ale zmienne globalne są deklarowane, ale nie wolno używać.
>Wiele zmiennych tego samego typu mogą być uznane w tej samej linii, na przykład:
var a, b, c int
Inne zmienne mogą być przypisane do tej samej linii, na przykład:
a, b, c = 5, 7, "abc"
Powyższa linia zakłada, że zmienne A, B i C zostały zgłoszone, w przeciwnym razie powinien on być stosowany w ten sposób:
a, b, c := 5, 7, "abc"
Wartości te są po prawej stronie na tej samej kolejności przypisana do zmiennej w lewo, tak, że stosunek wynosi 5, wartość b znajduje się 7 wartość c wynosi "abc."
To zadanie nazywa się równolegle lub jednocześnie.
Jeśli chcesz zamienić wartości dwóch zmiennych, można po prostu użyć, B = B, A.
Pusty identyfikator _ służy również odrzucone wartości, takich jak wartości 5: _, b = 5, 7 został opuszczony.
_ Właściwie zmienna tylko do zapisu, nie można się jej wartość. Go to zrobić, ponieważ język, w którym trzeba wykorzystać wszystkie zmienne są deklarowane, ale czasami nie trzeba korzystać ze wszystkich wartości zwracane z funkcji otrzymanej.
Przypisanie Parallel służy również jako funkcja zwracać wiele wartości zwracanych, takich jak Val i błędu ERR jest tu jednocześnie uzyskane przez wywołanie funkcji func1: val, err = func1 (VAR1).