Zuvor haben wir besprochen, warum Vyper ein Game Changer ist, da es eine der am schnellsten wachsenden Sprachen für die Entwicklung intelligenter Verträge ist.
Wir haben auch einige Grundlagen wie Pragma und Constructor behandelt. Sie können es hier lesen.
Heute tauchen wir tief in die Datentypen und ihre Funktionsweise ein.
Datentypen helfen uns, verschiedene Informationen in unserem Code zu organisieren, genau wie wir Elemente zu Hause an bestimmten Orten sortieren.
Diese Typen werden festgelegt, bevor das Programm ausgeführt wird. So wie ein für Flüssigkeiten konzipierter Behälter nicht für die Lagerung von Feststoffen geeignet ist, kann jede Variable in Vyper nur den Datentyp speichern, für den sie entwickelt wurde.
Beim Schreiben von Code müssen wir angeben, welchen Datentyp jede Variable enthalten soll – sei es eine Zahl für Berechnungen, Text für einen Namen oder wahr/falsch für einfache Entscheidungen. Diese Typen stellen sicher, dass unsere Programme Informationen korrekt verarbeiten und verhindern Fehler wie den Versuch, den Namen einer Person zu multiplizieren oder Buchstaben zusammenzufügen.
Datentypen in Vyper verstehen
Stellen Sie sich boolesche Werte wie Lichtschalter vor – sie können nur zwei Zustände haben: wahr oder falsch. Wir verwenden sie in unserem Code, um Ja/Nein-Entscheidungen zu treffen.
<code>is_active: bool = True is_paused: bool = False # 可以翻转布尔值 is_active = not is_active # 现在是 False</code>
Bestimmte Operatoren können effektiv mit booleschen Werten verwendet werden, einschließlich not, oder == und !=. Das bedeutet, dass wir sie nutzen können, um Wahrheit oder Unwahrheit zu beweisen.
**运算符** | **描述** |
---|---|
not x | 逻辑否定 |
x and y | 逻辑合取 |
x or y | 逻辑析取 |
x == y | 相等 |
x != y | 不相等 |
nicht x – wahre/falsche Werte in ihr Gegenteil umdrehen
is_door_locked = True
is_door_unlocked = not is_door_locked # Ergebnis: Falsch
Es ist, als würde man „das Gegenteil“ sagen – wenn die Tür verschlossen ist, bedeutet das Entriegeln, dass sie offen ist.
x und y – beide Bedingungen müssen wahr sein
has_ticket = True
has_id = True
can_board_plane = has_ticket and has_id # Ergebnis: True
So wie Sie ein Ticket und einen Ausweis benötigen, um in ein Flugzeug einzusteigen, müssen beide Werte wahr sein, damit das Ergebnis wahr ist.
x oder y – mindestens eine Bedingung muss wahr sein.
has_cash = False
has_credit_card = True
can_pay = has_cash oder has_credit_card # Ergebnis: True
Beim Bezahlen können Sie beispielsweise Bargeld oder Kreditkarte verwenden; Sie benötigen eine davon, um wahr zu sein.
x == y – prüft, ob zwei Werte gleich sind
Passwort = "secret123"
Eintrag = „secret123“
is_correct = Passwort == Eintrag # Ergebnis: True
Es ist, als würde man prüfen, ob zwei Schlüssel gleich sind.
x != y – prüft, ob zwei Werte unterschiedlich sind
erwarteter_Preis = 100
tatsächlicher_preis = 90
price_changed = erwarteter_Preis != tatsächlicher_Preis # Ergebnis: Wahr
Das ist so, als würde man prüfen, ob etwas anders ist, etwa wenn man feststellt, dass ein Preis anders ist als erwartet. Diese Operatoren helfen Ihnen, logische boolesche Entscheidungen zu treffen.
Bei der Verwendung von Zahlen in Smart Contracts bietet Vyper zwei grundlegende Methoden zum Umgang mit Ganzzahlen: vorzeichenbehaftete Ganzzahlen und vorzeichenlose Ganzzahlen. Jede Methode hat ihren spezifischen Zweck und das Verständnis ihrer Unterschiede ist entscheidend für das Schreiben von effizientem und sicherem Code.
Vorzeichenbehaftete Ganzzahlen sind wahrscheinlich der vielseitigste Zahlentyp in Vyper und können sowohl positive als auch negative Werte darstellen. Stellen Sie sich ein Bankkonto vor – Sie können Einzahlungen tätigen (positive Zahlen) und Geld abheben (negative Zahlen). Hier glänzen vorzeichenbehaftete Ganzzahlen. Wenn Sie eine Variable wie age: int8 = -5 deklarieren, weisen Sie Vyper an, 8 Bit Speicherplatz zu reservieren, der eine beliebige Zahl zwischen -128 und 127 aufnehmen kann.
<code>is_active: bool = True is_paused: bool = False # 可以翻转布尔值 is_active = not is_active # 现在是 False</code>
Für größere Werte bietet Vyper eine größere Speicherkapazität. Der Typ int256 wird typischerweise für eine große Anzahl numerischer Operationen verwendet und kann größere Zahlen verarbeiten. Erwägen Sie, den Gewinn und Verlust eines Unternehmens zu verfolgen: Balance: int256 = 1000. Dies kann einen großen finanziellen Schritt in beide Richtungen bedeuten.
Einige Werte in der realen Welt sind niemals negativ. Sie können nicht -3 Äpfel oder -5 Benutzer haben. Hier kommen vorzeichenlose Ganzzahlen ins Spiel. Eine Aussage wie „quantity: uint8 = 255“ eignet sich perfekt für Inventarsysteme oder die Benutzerzählung.
Der Typ uint8 verwendet effektiv 8 Bit, um Werte zwischen 0 und 255 zu speichern, was ihn ideal für kleine positive Zahlen macht.
<code>is_active: bool = True is_paused: bool = False # 可以翻转布尔值 is_active = not is_active # 现在是 False</code>
Die am häufigsten verwendete vorzeichenlose Ganzzahl in Vyper ist uint256. Wenn Sie „price: uint256 = 1000“ schreiben, erstellen Sie eine Variable, die eine große positive Zahl enthalten kann, perfekt für die Anzahl der Token oder den Wei-Wert in einer Ethereum-Transaktion.
Wenn Sie für präzise Berechnungen Dezimalpunkte verwenden müssen
<code># 有符号整数(可以为正数或负数) age: int8 = -5 # 存储范围为 -128 到 127 balance: int256 = 1000 # 较大的范围用于更大的数字</code>
Wir verwenden täglich Adressen, um Standorte zu identifizieren – Ihr Zuhause, ein Geschäft oder das Zuhause eines Freundes. In der Ethereum-Welt funktionieren Adressen ähnlich, aber anstatt auf einen physischen Standort zu verweisen, verweisen sie auf digitale Geldbörsen und Smart Contracts. Lassen Sie uns untersuchen, was diese Adressen einzigartig macht und wie sie in Vyper funktionieren.
Was ist eine Ethereum-Adresse?
<code># 无符号整数(只有正数) quantity: uint8 = 255 # 存储范围为 0 到 255 price: uint256 = 1000 # 常用于存储大型正数</code>
Stellen Sie sich Ihre Ethereum-Adresse als ein einzigartiges digitales Postfach vor. So wie Ihre Privatadresse sicherstellt, dass die Post nur Sie erreicht, stellt eine Ethereum-Adresse sicher, dass Kryptowährungen und digitale Vermögenswerte ihr beabsichtigtes Ziel erreichen. In Vyper verwenden wir einen speziellen Typ namens Adresse, um diese Adressen zu verarbeiten.
Wenn Sie etwas schreiben wie:
<code>price: decimal = 19.99 # 适用于财务计算 tax_rate: decimal = 0.15</code>
Sie erstellen eine Variable, die nur gültige Ethereum-Adressen speichern kann. Diese Adressen beginnen immer mit „0x“, gefolgt von 40 Zeichen bestehend aus Zahlen (0-9) und Buchstaben (a-f).
Beispiele aus der Praxis Nehmen wir an, Sie erstellen einen einfachen Vertrag über eine digitale Geldbörse. Sie können die Adresse wie folgt hinterlegen:
<code>owner: address = 0x123... # 存储钱包地址 contract: address = 0xABC...</code>
Adresse verwenden Adressen in Vyper haben besondere Eigenschaften. Sie können Folgendes überprüfen:
So einfach können Sie beispielsweise den Kontostand einer Adresse überprüfen:
<code>owner: address = 0x71C7656EC7ab88b098defB751B7401B5f6d8976F</code>
Adressen helfen uns bei der Navigation durch die Blockchain und stellen sicher, dass unsere digitalen Assets und Interaktionen ihr beabsichtigtes Ziel sicher und zuverlässig erreichen.
In Vyper werden Byte-Arrays verwendet, um rohe Binärdaten zu verarbeiten. Betrachten Sie sie als Behälter zum Speichern von Informationen, die ein Computer direkt verarbeiten kann. Byte-Arrays sind besonders nützlich, wenn Sie mit Dateien, kryptografischen Hashes oder binären Operationen arbeiten.
<code># 钱包的所有者 owner: address = 0x71C7656EC7ab88b098defB751B7401B5f6d8976F # 可靠的备份地址 backup_wallet: address = 0x8626f6940E2eb28930eFb4CeF49B2d1F2C9C1199</code>
Statisches Byte-Array Statische Byte-Arrays haben eine feste Größe und können nicht geändert werden. Das macht es einfach und effizient.
Beispiel: Speichern eines Hashs fester Größe Angenommen, Sie haben einen eindeutigen Code, beispielsweise einen Fingerabdruck, der immer 32 Byte lang ist. So speichern Sie es in Vyper.
fixed_code: bytes32 Das bedeutet, dass bytes32 immer 32 Bytes sein wird.
Dynamisches Byte-Array
Ein dynamisches Byte-Array kann Daten unterschiedlicher Länge aufnehmen, sofern es die maximale Größe nicht überschreitet. Es hilft beim Speichern von Inhalten wie Kurznachrichten.
Beispiel: Kurznachricht speichern Angenommen, Sie möchten eine Nachricht wie „Hello, World!“ speichern, die bis zu 100 Bytes lang sein kann:
<code>is_active: bool = True is_paused: bool = False # 可以翻转布尔值 is_active = not is_active # 现在是 False</code>
Okay, das war's für die heutige Studie. In unserem nächsten Artikel werden wir weitere Datentypen untersuchen und ihre Fähigkeiten verstehen.
Um mehr darüber zu lesen, schauen Sie sich die Vyper-Dokumentation und die Vyper-Beispiele an.
Das obige ist der detaillierte Inhalt vonVyper-Datentypen (Serie 2). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!