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“.
Vor- und Nachteile von Go Stimme des Programmierers: Wenn ich in der realen Welt in wenigen Tagen einen Prototypen erstellen, ein Produktionssystem testen und bereitstellen muss und fünfmal mehr Anfragen pro Sekunde als zuvor verarbeiten kann, steigt der CPU- und Speicheraufwand sind noch sehr klein. Ich denke, nur die Go-Sprache kann das.
Die Go-Sprache bietet die folgenden Vorteile: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.
- Kreuzkompilierung: Kompilieren Sie Binärdateien auf jedem Betriebssystem, die auf anderen Plattformen laufen. Beispielsweise können auf einem Mac-System Binärdateien kompiliert werden, die unter Linux und Windows lauffähig sind.
- Garbage Collection: Die Go-Sprache unterstützt die Garbage Collection. Im Vergleich dazu erfordern C++, Rust usw., dass Entwickler sich selbst kontrollieren müssen.
- Ausführungsleistung: Go ist sehr schnell. Die Leistung ähnelt C++. Viel höher als Java, Python und Node.
- Entwicklungseffizienz: Die Go-Sprache bietet sowohl die Laufleistung statischer Sprachen als auch die Entwicklungseffizienz dynamischer Sprachen.
- Einfachheit und Effizienz: Die Designphilosophie der Go-Sprache umfasst Einfachheit und Effizienz. Ein typisches Gegenbeispiel ist die komplexe und aufgeblähte Java-Sprache.
- Parallelität: Die Sprachebene unterstützt Parallelität, vereinfacht die gleichzeitige Entwicklung durch Coroutinen und Kanäle und verbessert die Parallelitätsleistung.
- Reichhaltige Standardbibliothek: Die Go-Standardbibliothek umfasst Text, E/A, Netzwerk, Verschlüsselung, Webdienste, Remote-RPC, Vorlagen-Engine und andere Funktionen.
- Kann C-Sprache aufrufen: Sie können C-Sprachfunktionen aufrufen, um die Leistung weiter zu optimieren und das riesige Ökosystem der C-Sprache wiederzuverwenden.
- Schnelle Kompilierungszeit: Go kompiliert extrem schnell. Sie können sich auf zwei statische Blog-Generierungssysteme beziehen: Hexo (entwickelt von Node) und Hugo (entwickelt von Go).
- Engineering-Typ: Der Zweck des Go-Sprachdesigns besteht darin, eine Engineering-Sprache zu werden, um tatsächliche Engineering-Probleme zu lösen. Die Go-Sprache definiert Entwicklungsspezifikationen und stellt eine Fülle von Tools bereit. Mit der Go-Sprache können Sie Programme schreiben, die leicht zu lesen und zu verstehen sowie leicht zu testen, zu warten und zu erweitern sind. [Verwandte Empfehlungen: Go-Video-Tutorial
- , Programmierunterricht]
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!

Heiße KI -Werkzeuge

Undress AI Tool
Ausziehbilder kostenlos

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

FORNEWGO1.21 Projekte, useLogforofficialStructuredLoggingSupport; 2.ForHigh-PerformanceProductionServices, wählenzaporzerologische Dünne und LowLowallocations;

Usesignal.notify () tolistenforsigint/sigtermandtriggershutdown; 2.runtheHttpserverinagoroutineAndblocktilasignalisReced;

Um eine serverlose API zu erstellen, müssen Sie eine GO -Umgebung einrichten und GoogleCloudsDK installieren, dann eine HTTP -Funktion schreiben, um die Anforderung zu verarbeiten, und schließlich über GCLOUDCLI für CloudFunktionen bereitgestellt werden. 1. Installieren Sie Go1.18 und GoogleCloudsDK und konfigurieren Sie das Projekt. 2. Erstellen Sie GO -Module und schreiben Sie HTTP -Verarbeitungsfunktionen, unterstützen Sie Get- und Post -Methoden, verarbeiten Sie JSON -Eingaben und Rückgabeantwort. 3. Vereinfachen Sie den Code und behalten Sie nur die Handler -Funktion bei, entfernen Sie die lokale Serverlogik. 4. Verwenden Sie den Befehl gCloud, um die Funktion bereitzustellen, die Laufzeit-, Einstiegspunkt- und Triggermethode anzugeben. 5. Testen Sie die Get and Post -Schnittstellen der API, überprüfen Sie die Rückgabe

Das Parsen von XML-Daten ist in GO sehr einfach. Verwenden Sie einfach das integrierte Codierungs-/XML-Paket. 1. Definieren Sie eine Struktur mit XML -Tag, um XML -Elemente und -attribute wie XML: "Name" entsprechende untergeordnete Elemente, XML: "Contact> E -Mail" zu verarbeiten, XML: "ID, Attr" liest Attribute; 2. Verwenden Sie XML.unmarshal, um XML -Zeichenfolgen in Strukturen zu analysieren. 3. Verwenden Sie für Dateien os.open, um sie zu öffnen und über XML.NewDeCoder zu dekodieren, was zum Streaming der Verarbeitung großer Dateien geeignet ist. 4. Bei der Verarbeitung doppelter Elemente in der Struktur

Cross-compilingagoAnlicationisStraInightForwardusedBuilt-Insupportviagoosandgoarch.1.SetGoosForthetargetoperatingsystem (z

Usetime.now () TogetTheScurrentLoclecimeasatime.TimeObject; 2.FormatThE-UNTERTHEFORMATMETHODWITHLAYOUTS LIEBEN "2006-01-0215: 04: 05";

Mit IO.MultiWriter können Daten gleichzeitig an mehrere Ziele geschrieben werden. 1. Geben Sie zwei oder mehr IO.Writer weiter, geben Sie einen kombinierten Schriftsteller zurück und alle Schreibvorgänge werden an jeden zugrunde liegenden Schriftsteller kopiert. 2. Es wird häufig verwendet, um gleichzeitig in STDOut, Datei und Speicherpuffer auszugeben. 3. Alle Autoren erhalten die gleichen Daten, aber sobald ein Schriftsteller einen Fehler zurückgibt, wird der Schreibprozess gestoppt. 4. Die Sicherheit der Parallelität ist nicht garantiert, und in einer Umgebung mit mehreren Korutine ist ein Mutex oder ein synchroner Schriftsteller erforderlich. 5. Die Anzahl der zurückgegebenen Bytes basiert auf dem Ergebnis des ersten Schriftstellers, aber alle Autoren sollten Daten vollständig empfangen (es sei denn, es gibt einen Fehler). 6. Typische Anwendungsszenarien sind gleichzeitig die Ausgabe von Protokolls für die Konsole und die Dateien, und die Implementierung kann durch Verwendung von Log.NEW in Verbindung mit dem Protokoll vereinfacht werden. Diese Methode

Die Wiederherstellungsfunktion muss in Verschiebung aufgerufen werden, um Panik zu erfassen. 2. Verwenden Sie die Wiederherstellung in langlebigen Programmen wie Goroutine oder Server, um zu verhindern, dass das gesamte Programm abstürzt. 3. Wiederherstellung sollte nicht missbraucht werden, nur bei der Behandlung verwendet werden, um zu vermeiden, dass das normale Fehlerbehebung ersetzt wird. 4. Best Practices umfassen die Aufzeichnung von Panikinformationen mit Debug.Stack (), um Stapelspuren zu erhalten und sich auf angemessener Ebene zu erholen. Wiederherstellung ist nur innerhalb von Aufschub gültig und sollte zum Debuggen mit Protokollen verwendet werden. Potenzielle Fehler können nicht ignoriert werden. Am Ende sollte der Code eher durch Rückgabefehler als in Panik ausgelegt werden.
