Heim > Artikel > Backend-Entwicklung > Ist Go eine Hochsprache?
go ist eine Hochsprache. Die Go-Sprache ist eine von Google im Jahr 2009 veröffentlichte Open-Source-Programmiersprache. Sie wurde entwickelt, um praktische Probleme im Entwicklungsprozess großer Systeme zu lösen. Sie unterstützt Parallelität, einheitliche Spezifikationen, Einfachheit, Eleganz und leistungsstarke Leistung Ziel ist es, „sowohl die Entwicklungsgeschwindigkeit dynamischer Sprachen wie Python als auch die Leistung und Sicherheit kompilierter Sprachen wie C/C++ zu erreichen.“
Die Betriebsumgebung dieses Tutorials: Windows 7-System, GO Version 1.18, Dell G3-Computer.
Computersprachen werden in Hochsprachen und Niedrigsprachen unterteilt. Hochsprache ist hauptsächlich mit der Assemblersprache verwandt. Sie ist im Wesentlichen vom Hardwaresystem der Maschine getrennt und schreibt Programme auf eine Weise, die für Menschen einfacher zu verstehen ist. Das geschriebene Programm wird Quellprogramm genannt.
Hochsprache bezieht sich nicht auf eine bestimmte Sprache, sondern umfasst viele Programmiersprachen, wie z. B. beliebte go语言
, Java, C, C++, C#, Pascal, Python, Lisp, Prolog, FoxPro, Easy Language, chinesische Version von C Sprache usw. Die Syntax und das Befehlsformat dieser Sprachen sind unterschiedlich.
Go-Sprache ist eine von Google im Jahr 2009 veröffentlichte Programmiersprache auf hoher Ebene. Sie wurde entwickelt, um praktische Probleme im Entwicklungsprozess großer Systeme zu lösen. Sie unterstützt Parallelität, einheitliche Spezifikationen, Einfachheit und Eleganz Leistung. Es wird von vielen Go-Sprachen verwendet. Der Evangelist bezeichnete es als „die C-Sprache im Cloud-Computing-Zeitalter“. Das Hauptziel der Go-Sprache besteht darin, „sowohl die Entwicklungsgeschwindigkeit dynamischer Sprachen wie Python als auch die Leistung und Sicherheit kompilierter Sprachen wie C/C++ zu erreichen“.
Die Go-Sprache wird manchmal als „C-ähnliche Sprache“ oder „die C-Sprache des 21. Jahrhunderts“ beschrieben. Go erbt ähnliche Ausdruckssyntax, Kontrollflussstruktur, grundlegende Datentypen, Aufrufparameterwertübertragung, Zeiger und viele andere Ideen von der C-Sprache. Es verfügt außerdem über die Laufeffizienz von kompiliertem Maschinencode, die die C-Sprache schon immer geschätzt hat, und stimmt mit dem vorhandenen Seamless überein Anpassung an das Betriebssystem.Separate Binärversion: Durch die Go-Projektkompilierung wird eine statische ausführbare Datei generiert. Diese Datei kann unabhängig und ohne weitere Abhängigkeiten ausgeführt werden. Dieser Ansatz eignet sich besonders für Cloud-native Containerumgebungen.
Slice kann rückwärts, aber nicht vorwärts erweitert werdens[i] darf len(s) nicht überschreiten, und die Rückwärtserweiterung darf die zugrunde liegende(n) Array-Obergrenze(n) nicht überschreitenSlice-Innenraum Drei Variablen Der ptr-Zeiger zeigt auf das erste Element des Slice, len gibt die Länge des Slice an und cap gibt die Kapazität des Slice an.
Wenn ein Slice angehängt wird und die Kapazität nicht ausreicht, wird es verdoppelt.
package main
import "fmt"
//rune相当于go的char 使用utf8编码,中文占3个字节,英文一个字节
func main() {
s:= "ok我爱你"
fmt.Println(len(s)) // 11
fmt.Println(len([]rune(s))) // 5
fmt.Println(len([]byte(s))) // 11
// str是int32类型
for i, str := range s {
fmt.Printf("%d %c", i, str)
fmt.Println()
}
// str是byte类型
for i, str := range []byte(s) {
fmt.Printf("%d %x", i, str)
fmt.Println()
}
// str是rune类型
for i, str := range []rune(s) {
fmt.Printf("%d %c", i, str)
fmt.Println()
}
}
有如下
arr := [...]{0, 1, 2, 3, 4, 5, 6, 7}
s1 := arr[2:6]
s2 := s1[3:5]
则
s1值为[2,3,4,5], len(s1)=4, cap(s1)=6
s2值为[5,6], len(s2)=2, cap(s2)=3
slice底层是数组
slice可以向后扩展,不可以向前扩展
s[i]不可以超过len(s), 向后扩展不可以超越底层数组cap(s)
Wenn die Obergrenze beim Hinzufügen von Elementen überschritten wird, weist das System ein größeres zugrunde liegendes Array neu zu und das ursprüngliche Array wird kopiert. Wenn niemand das ursprüngliche Array verwendet, wird es gc seinAufgrund der Wertübertragung. Es muss akzeptiert werden. Der Rückgabewert von append wird gemeldet. Verwenden Sie den Schlüssel, um festzustellen, ob der Schlüssel vorhanden ist, ok := m["key"]map verwendet eine Hash-Tabelle und die als Karte verwendeten Schlüssel müssen relativ gleich seinZusätzlich zu Slice, Map und integrierten Funktionen Typen können als Schlüssel verwendet werden
Der Strukturtyp enthält nicht die oben genannten Felder und kann auch als Schlüssel verwendet werden
So erweitern Sie Systemtypen oder Typen anderer Personen: Durch Strukturvererbung, Aliasing nach Typ
接着上题
arr := [...]{0, 1, 2, 3, 4, 5, 6, 7}
s1 := arr[2:6]
s2 := s1[3:5]
s3 := append(s2, 10)
s4 := append(s3, 11)
s5 := append(s4, 12)
则
s1值为[2,3,4,5]
s2值为[5,6]
s3值为[5,6,10]
s4值为[5,6,10,11]
s5值为[5,6,10,11,12]
arr值为[0, 1, 2, 3, 4, 5, 6, 10]
由于s4和时s5已经超过arr的cap,此时系统会生成一个新的数组,所以s4和s5是对新数组的view,即s4和s5 no longer view arr
Wertempfänger ist einzigartig für die Go-Sprache
Weder Panik noch Rückkehr wirken sich auf den Aufschub aus
Weitere Kenntnisse zum Thema Programmierung finden Sie unter: Programmiervideo! !
Das obige ist der detaillierte Inhalt vonIst Go eine Hochsprache?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!