Heim  >  Artikel  >  Backend-Entwicklung  >  Eine kurze Diskussion über die Speicherzuweisung aus der Perspektive der Go-Sprache

Eine kurze Diskussion über die Speicherzuweisung aus der Perspektive der Go-Sprache

Go语言进阶学习
Go语言进阶学习nach vorne
2023-07-24 15:45:17472Durchsuche

Warum sollten Sie die Sprache C lernen? Einige bestimmte Felder wie eingebettetes C werden selten gesehen, aber warum höre ich immer noch, dass xx sagt, dass wir die C-Sprache gut lernen müssen? die Sprache, sondern die Dinge hinter der Sprache, die Designs, die sie repräsentiert, und das Wesen, das sie repräsentiert.

Welche Vorteile bringt es, wenn man die Sprache C gut lernt?


Ich glaube, dass viele Neulinge in der Gruppe vielleicht schon einmal gehört haben, dass ich in einer Woche xx Sprachen gelernt habe Du hast direkt angefangen zu arbeiten, und dann hast du im Stillen gesagt: „Stell dir vor, du wärst 13“, vielleicht habt ihr direkt in der Gruppe angefangen zu kämpfen.

Kann man also wirklich sagen, dass man eine Sprache in einer oder zwei Wochen lernen kann?

Ich kann Verantwortung übernehmen und Ihnen sagen, dass es absolut kein Problem gibt, aber es muss auf einem starken Fundament aufgebaut werden.

Und Zeiger sind eine besonders wichtige Grundlage. Egal welche Sprache heutzutage verwendet wird, das Wesentliche ist die Anwendung von Zeigern, aber sie ist einfach gekapselt.

Dies führt jedoch dazu, dass ein instabiles Fundament insbesondere für Neulinge zu unerklärlichen und unverständlichen Problemen führt.

Egal, in welchem ​​Stadium Sie sich gerade befinden, diejenigen, die die C-Sprache noch nicht gelernt haben, müssen C lernen und die wichtige Grundlage übernehmen, die zurückgelassen wurde.

Lassen Sie mich Ihnen zunächst eine kurze Einführung geben.


Der erforderliche Technologie-Stack ist dieses Mal die Go-Sprache, aber wenn man mit Zeigern beginnt, ist Go und C im Grunde das Wesentliche das Gleiche, daher wird die benutzerfreundlichere Go-Sprache verwendet.

Wir werden Python später hinzufügen, es mit Go vergleichen, was die Unterschiede sind und sehen, wie das beliebte Python Speicher zuweist.

Derzeit empfehle ich Ihren Freunden beim Lesen dieses Artikels immer noch, über gewisse Grundkenntnisse zu verfügen und zumindest zu verstehen, wie man Variablen definiert usw.


Die Beziehung zwischen der Hardware des Betriebssystems

Zunächst müssen wir die Hauptkomponenten des Computers verstehen.

首先,简单的说,至少由 CPUCPU  内存条  硬盘  显卡 显示器  操作系统(Linux,Windowns)  

内存条

 Eine kurze Diskussion über die Speicherzuweisung aus der Perspektive der Go-Sprache

硬盘

🎜🎜  🎜🎜🎜🎜显卡🎜🎜🎜🎜 🎜🎜🎜🎜显示器🎜🎜🎜 🎜  🎜🎜🎜🎜<code style="box-sizing: border-box;font-family: var(--monospace);vertical-align: initial;border-width: 1px;border-style: solid;border-color : rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;">操作系统(Linux, Windowns)🎜🎜🎜🎜等🎜🎜🎜🎜嗯...大概是这样子的,有点丑。🎜🎜



Kurz gesagt:

  1. Jede Anwendung auf dem System (qq, WeChat usw.) möchte, dass der Computer Musik abspielt, und der Monitor zeigt etwas an, z. B. das Schreiben einer Datei auf die Festplatte erfordert die Zustimmung des Betriebssystems.

  2. Das Betriebssystem ruft die CPU auf, um die Ausführung der Anweisungen abzuschließen, und die CPU liest die geöffnete Anwendung in den Memory Stick. Warum bleibt die mechanische Festplatte so hängen? Jetzt zischt das Solid-State-Gerät. Damit ist die Übertragung der Daten von der Festplatte auf den Speicherstick abgeschlossen.

  3. Die CPU analysiert die in den Speicherstick eingelesenen Daten. Wenn es sich um Daten handelt, die von der CPU verarbeitet werden, werden sie selbst erfasst und berechnet. Wenn es sich um Daten handelt, die von der Grafikkarte verarbeitet werden, werden sie aufgerufen Wenn es sich um Sounddaten handelt, werden diese von der Soundkarte berechnet.

  4. Durch die obige Koordination kann grundsätzlich die gesamte Anwendung ausgeführt werden. Wenn Daten auf die Festplatte geschrieben werden müssen, kann die CPU einfach die Daten im Speicherstick auf die Festplatte schreiben.

Okay, durch das oben Gesagte können wir grundsätzlich die Koordinationsbeziehung zwischen dem Betriebssystem und jeder Hardware verstehen.

Lassen Sie mich Ihnen ein Geheimnis verraten: Der Code, den wir schreiben, läuft grundsätzlich auf dem Memory Stick. Ebenso führen die oben genannten Anwendungen den Anwendungscode grundsätzlich auf dem Memory Stick aus.


Memory Stick

Ja, das ist er, ein Memory Stick.

Eine kurze Diskussion über die Speicherzuweisung aus der Perspektive der Go-Sprache

Ebenso kann ich auf diese Weise auch den inneren Aufbau des Memory Sticks verstehen.

Wir können die Memory Sticks einfach als Häuser verstehen.

Eine kurze Diskussion über die Speicherzuweisung aus der Perspektive der Go-Sprache

ist immer noch hässlich...

Aber unser Memory Stick hat Koordinaten , auch Adresse genannt, jeweils klein Es gibt Werte ​eins nach dem anderen.

Eine kurze Diskussion über die Speicherzuweisung aus der Perspektive der Go-Sprache

Aber normalerweise verstehen wir es pauschal, so.

Adressen (Koordinaten) werden im Allgemeinen hexadezimal ausgedrückt, und was auch immer der Wert sein sollte, ist dumm.

Eine kurze Diskussion über die Speicherzuweisung aus der Perspektive der Go-Sprache

Code-Brief

Werfen wir einen Blick auf einen sehr kurzen Go-Code.

Deklarieren Sie eine Altersvariable, weisen Sie ihr den Wert 18 zu und geben Sie sie aus. Wie

package main


import "fmt"


func main() {
    var age int = 18
    fmt.Println("我今年:",age,"岁")
}

im Gedächtnis dargestellt wird.

Eine kurze Diskussion über die Speicherzuweisung aus der Perspektive der Go-Sprache

Das Alter unseres Variablennamens weist auf 0x10010x1001地址,并且输出了0x0001address und 0x0001

Der gespeicherte Wert.

Einfach so. Eine kurze Diskussion über die Speicherzuweisung aus der Perspektive der Go-Sprache

Hinweis:

Sie müssen diesen Satz verstehen. Der Variablenname zeigt auf die Adresse auf dem Memory Stick. 🎜🎜🎜

上述age指向就是地址0x10010x1001

但是我们在fmt.Println("我今年:",age,"岁")

但是我们在fmt.Println("我今年:",age,"岁")

同理,我们在赋值,交换变量时,还是

是地址里面的

例如:

Eine kurze Diskussion über die Speicherzuweisung aus der Perspektive der Go-Sprache

Eine kurze Diskussion über die Speicherzuweisung aus der Perspektive der Go-Sprache

上述代码内存分配图.

age2 beantragt erneut eine Adresse, um den Wert des 18-Jährigen zu speichern.

Manchmal fragt sich jemand, ob es am Samstag eine solche Situation gibt. Würde das nicht mehr Speicherplatz sparen?

Eine kurze Diskussion über die Speicherzuweisung aus der Perspektive der Go-Sprache

Ergebnis: Natürlich werden wir später über diese Situation sprechen. Verstehen Sie es jetzt einfach Schritt für Schritt.


Fazit

Der Variablenname zeigt auf die Speicheradresse.

Wenn wir einen Wert zuweisen oder Variablen wie das Drucken bearbeiten, verarbeiten wir den Wert der Adresse .


Ende

Vielleicht ist Ihnen schon etwas schwindelig, deshalb endet dieser Artikel hier.

Wenn Sie während der Operation auf Aufgabenprobleme stoßen, denken Sie bitte daran, unten eine Nachricht zu hinterlassen. Wir werden das Problem so schnell wie möglich lösen.

Ich bin ein Programmierer auf Zhouba. Wenn Sie es gut finden, denken Sie bitte daran, ihm ein „Gefällt mir“ zu geben.

Vielen Dank fürs Zuschauen.

Wenn Sie während der Operation auf Probleme stoßen, denken Sie bitte daran, unten eine Nachricht zu hinterlassen. Wir werden das Problem so schnell wie möglich lösen.

Erzählen Sie anderen mit einem Lächeln, dass es mir heute besser geht als gestern und dass ich auch in Zukunft derselbe sein werde.

Wenn Sie den Artikel gut finden, denken Sie daran, ihn zu liken und eine Nachricht an den Support zu hinterlassen , um uns zu unterstützen. Vielen Dank fürs Lesen. Wenn Sie Fragen haben, hinterlassen Sie bitte unten eine Nachricht. Wenn Sie mehr über Python erfahren möchten, besuchen Sie die Lernwebsite: http://pdcfighting.com/. Klicken Sie zum Lesen Zum Originaltext können Sie direkt gehen~

----------------. --- Ende ------- ---- Empfehlungen für spannende Artikel aus früheren Ausgaben: Ein Artikel mit Sie verstehen die Grundlagen der Go-Sprache-NetzwerkprogrammierungDie Grundstruktur der Go-Sprache (Winter)

  • Ein Artikel führt Sie dazu, die Grundlagen der Parallelität (Kanal) in der Sprache Go zu verstehen

    Willkommen alle
  • Gefällt mir,
    Nachricht hinterlassen,
    weiterleiten,
    erneut posten,
    Vielen Dank an alle für Ihr Unternehmen und Ihre Unterstützung
    Wenn Sie der Go-Lerngruppe beitreten möchten, antworten Sie bitte im Hintergrund [Eine kurze Diskussion über die Speicherzuweisung aus der Perspektive der Go-Sprache
    Der Gruppe beitreten
    ]

    Tausende von Bergen und Flüssen lieben immer, klicken Sie auf [ Looking]Okay

    Das obige ist der detaillierte Inhalt vonEine kurze Diskussion über die Speicherzuweisung aus der Perspektive der Go-Sprache. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

    Stellungnahme:
    Dieser Artikel ist reproduziert unter:Go语言进阶学习. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen