Wie können wir Zehnerpotenzen kompakt als Konstanten in Go definieren?

Patricia Arquette
Freigeben: 2024-11-25 03:09:13
Original
1004 Leute haben es durchsucht

How Can We Compactly Define Powers of 1000 as Constants in Go?

So drücken Sie Zehnerpotenzen kompakt als Konstanten aus

In der Programmiersprache Go wird das Konzept der Konstanten mit iota als Mächtigkeit eingeführt Mechanismus zur Erzeugung kompakter und lesbarer konstanter Werte. Übung 3.13 des Buches fordert die Leser dazu auf, Konstanten prägnant zu definieren, die Potenzen von 1000 (KB, MB usw.) darstellen.

Während die Übung den Anschein erweckt, als ob sie eine ausgefeilte Lösung mit Iota erfordert, geben die Autoren ausdrücklich an, dass dieser Ansatz ist aufgrund der fehlenden Potenzierung in Go nicht möglich. Stattdessen ermutigen sie die Leser, „so kompakte wie“-Lösungen zu erkunden.

Ansatz mit Gleitkomma-Literalen

Ein kompakter Ansatz besteht darin, Gleitkomma-Literale mit einem Exponenten zu verwenden Teil. Beispielsweise stellt die Konstante 1e3 den Wert 1000 dar, und jede nachfolgende Konstante kann durch Multiplikation mit 1000 oder einfach durch Addition von 3 zum Exponenten erhalten werden. Diese Methode führt zu der folgenden einzeiligen Deklaration (ohne Leerzeichen):

const ( KB, MB, GB, TB, PB, EB, ZB, YB = 1e3, 1e6, 1e9, 1e12, 1e15, 1e18, 1e21, 1e24 )
Nach dem Login kopieren

Integer-Literals-Ansatz

Alternativ können wir für untypisierte Ganzzahlkonstanten die Folgemultiplikation durchführen Konstanten durch 1000. Wir können jedoch Platz sparen, indem wir stattdessen die vorherige Konstante als Multiplikator verwenden. Beispielsweise kann MB als KB 1000 oder einfach KB KB definiert werden.

const (KB, MB, GB, TB, PB, EB, ZB, YB = 1000, KB*KB, MB*KB, GB*KB, TB*GB, PB*KB, EB*KB, ZB*KB)
Nach dem Login kopieren

Einführung einer zusätzlichen Konstante

Diese Lösung kann sein weiter verfeinert durch Einführung einer zusätzlichen Konstante x, die 1000 darstellt. Durch die Verwendung von x als Multiplikator sparen wir 3 Zeichen.

const (x, KB, MB, GB, TB, PB, EB, ZB, YB = 1000, x, x*x, MB*x, GB*x, TB*GB, PB*x, EB*x, ZB*x)
Nach dem Login kopieren

Rune-Literal-Ansatz

Für maximale Kompaktheit können wir schließlich einer Runenkonstante den Wert 1000 zuweisen. In Unicode stellt der Codepunkt 1000 das Zeichen „Ϩ“ dar, das 1 Zeichen kürzer als „x“ ist.

const (x, KB, MB, GB, TB, PB, EB, ZB, YB = 'Ϩ', x, x*x, MB*x, GB*x, TB*GB, PB*x, EB*x, ZB*x)
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie können wir Zehnerpotenzen kompakt als Konstanten in Go definieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage