Idź zmienne lingwistyczne
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
deklaracja zmiennej
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
Multivariable oświadczenie
//类型相同多个变量, 非全局变量 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
Typy wartości i typy referencyjne
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.
Krótka forma, użyj: = operator przypisania
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.
Środki ostrożności
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).