以前、Vyper は最も急速に成長しているスマート コントラクト開発言語の 1 つであるため、Vyper がゲームチェンジャーである理由について説明しました。
プラグマやコンストラクターなどの基本についても説明しました。ここで読むことができます。
今日は、データ型とその仕組みについて詳しく説明します。
データ型とは何ですか?
データ型は、家庭でアイテムを特定の場所に分類するのと同じように、コード内のさまざまな情報を整理するのに役立ちます。
これらのタイプは、プログラムが実行される前に設定されます。液体用に設計されたコンテナが固体の保存には適さないのと同様に、Vyper の各変数は、設計されたデータ型のみを保存できます。
コードを記述するときは、各変数がどのようなデータ型を保持するかを指定する必要があります。計算用の数値、名前用のテキスト、単純な決定用の true/false などです。これらのタイプにより、プログラムが情報を正しく処理できるようになり、誰かの名前を掛け合わせたり、文字を追加しようとしたりするようなエラーが防止されます。
Vyper のデータ型を理解する
- ブール値 - 単純な true/false
ブール値は照明のスイッチのようなものだと考えてください。ブール値は true または false の 2 つの状態のみを取ることができます。コード内でこれらを使用して、Yes/No を決定します。
<code>is_active: bool = True is_paused: bool = False # 可以翻转布尔值 is_active = not is_active # 现在是 False</code>
not、==、!= など、特定の演算子はブール値で効果的に使用できます。これは、真実か虚偽を証明するためにそれらを使用できることを意味します。
**运算符** | **描述** |
---|---|
not x | 逻辑否定 |
x and y | 逻辑合取 |
x or y | 逻辑析取 |
x == y | 相等 |
x != y | 不相等 |
-
not x - true/false 値をその反対に反転します
is_door_locked = True
is_door_unlocked = is_door_locked ではない # 結果: False
それは「反対」と言っているようなものです - ドアがロックされている場合、ロックが解除されているということはドアが開いていることを意味します。
-
x と y - 両方の条件が true である必要があります
has_ticket = True
has_id = True
can_board_plane = has_ticket および has_id # 結果: True
飛行機に乗るのにチケットと ID が必要なように、結果が true になるには両方の値が true である必要があります。
-
x または y - 少なくとも 1 つの条件が true である必要があります。
has_cash = False
has_credit_card = True
can_pay = has_cash または has_credit_card # 結果: True
たとえば、支払いの際は現金またはクレジット カードを使用できます。これらのいずれかが必要です。
-
x == y - 2 つの値が同じかどうかを確認します
パスワード = "secret123"
エントリ = "secret123"
is_correct = パスワード == エントリ # 結果: True
2 つのキーが同じかどうかを確認するようなものです。
-
x != y - 2 つの値が異なるかどうかをチェックします
予想価格 = 100
実際の価格 = 90
価格変更 = 期待価格 != 実際の価格 # 結果: True
これは、価格が予想と異なることに気づくなど、何かが異なっているかどうかを確認するようなものです。これらの演算子は、論理的なブール値の決定を行うのに役立ちます。
数値 - 整数とその変形
スマート コントラクトで数値を使用する場合、Vyper は整数を処理するための 2 つの基本的な方法 (符号付き整数と符号なし整数) を提供します。各メソッドには特定の目的があり、効率的で安全なコードを作成するには、その違いを理解することが重要です。
- 符号付き整数
符号付き整数は、おそらく Vyper で最も汎用性の高い数値タイプであり、正の値と負の値の両方を表すことができます。銀行口座を思い浮かべてください。入金 (正の数) とお金の引き出し (負の数) ができます。ここで符号付き整数が威力を発揮します。 age: int8 = -5 などの変数を宣言すると、-128 から 127 までの任意の数値を保持できる 8 ビットのスペースを予約するように Vyper に指示することになります。
<code>is_active: bool = True is_paused: bool = False # 可以翻转布尔值 is_active = not is_active # 现在是 False</code>
値が大きい場合、Vyper はより大きなストレージ容量を提供します。 int256 型は通常、多数の数値演算に使用され、より大きな数値を処理できます。企業の損益を追跡することを考えてみましょう: Balance: int256 = 1000。これは、どちらの方向にも大きな経済的動きを意味する可能性があります。
- 符号なし整数
現実世界の一部の価値観は決して否定的ではありません。 -3 個のリンゴや -5 人のユーザーを持つことはできません。ここで符号なし整数が活躍します。数量: uint8 = 255 のようなステートメントは、在庫システムやユーザー数のカウントに最適です。
uint8 タイプは 8 ビットを効果的に使用して 0 から 255 までの値を格納するため、小さな正の数に最適です。
<code>is_active: bool = True is_paused: bool = False # 可以翻转布尔值 is_active = not is_active # 现在是 False</code>
Vyper で最も一般的に使用される符号なし整数は uint256 です。 Price: uint256 = 1000 と記述すると、イーサリアム トランザクションのトークン数または wei 値に最適な、巨大な正の数を保持できる変数が作成されます。
- 10 進数
正確な計算のために小数点を使用する必要がある場合
<code># 有符号整数(可以为正数或负数) age: int8 = -5 # 存储范围为 -128 到 127 balance: int256 = 1000 # 较大的范围用于更大的数字</code>
- アドレス - Ethereum アカウント用
私たちは毎日住所を使用して、あなたの家、店、友人の家などの場所を特定します。イーサリアムの世界でもアドレスは同様に機能しますが、物理的な場所を指すのではなく、デジタル ウォレットとスマート コントラクトを指します。これらのアドレスが一意である理由と、Vyper でどのように機能するかを見てみましょう。
イーサリアムアドレスとは何ですか?
<code># 无符号整数(只有正数) quantity: uint8 = 255 # 存储范围为 0 到 255 price: uint256 = 1000 # 常用于存储大型正数</code>
イーサリアム アドレスを固有のデジタル メールボックスと考えてください。自宅の住所によって郵便物が自分だけに届くようにするのと同じように、イーサリアム アドレスによって暗号通貨やデジタル資産が目的の宛先に確実に届くようになります。 Vyper では、これらのアドレスを処理するために address と呼ばれる特別なタイプを使用します。
次のように書くと:
<code>price: decimal = 19.99 # 适用于财务计算 tax_rate: decimal = 0.15</code>
有効な Ethereum アドレスのみを格納できる変数を作成しています。これらのアドレスは常に「0x」で始まり、その後に数字 (0 ~ 9) と文字 (a ~ f) で構成される 40 文字が続きます。
現実世界の例 単純なデジタルウォレットコントラクトを構築しているとします。アドレスは次のように保存できます:
<code>owner: address = 0x123... # 存储钱包地址 contract: address = 0xABC...</code>
アドレスを使用する Vyper のアドレスには特別なプロパティがあります。以下を確認できます:
- 1 つのアドレスには何枚の Ether コインが保持されます
- アドレスがスマート コントラクトに属しているかどうか
- コードは契約アドレスに保存されます
たとえば、アドレスの残高を確認するのは次のように簡単です:
<code>owner: address = 0x71C7656EC7ab88b098defB751B7401B5f6d8976F</code>
アドレスはブロックチェーンをナビゲートするのに役立ち、デジタル資産とインタラクションが目的の目的地に安全かつ確実に到達することを保証します。
- バイト配列 - 生データ用
Vyper では、生のバイナリ データを処理するためにバイト配列が使用されます。これらは、コンピューターが直接処理できる情報を保存するためのコンテナーと考えてください。バイト配列は、ファイル、暗号化ハッシュ、またはバイナリ操作を操作する場合に特に便利です。
<code># 钱包的所有者 owner: address = 0x71C7656EC7ab88b098defB751B7401B5f6d8976F # 可靠的备份地址 backup_wallet: address = 0x8626f6940E2eb28930eFb4CeF49B2d1F2C9C1199</code>
静的バイト配列 静的バイト配列のサイズは固定されており、変更できません。これにより、シンプルかつ効率的になります。
例: 固定サイズのハッシュの保存 常に 32 バイトの長さの指紋などの一意のコードがあるとします。 Vyperに保存する方法は次のとおりです。
fixed_code: bytes32 これは、bytes32 が常に 32 バイトになることを意味します。
動的バイト配列
動的バイト配列は、最大サイズを超えない限り、さまざまな長さのデータを収容できます。ショートメッセージなどのコンテンツを保存するのに役立ちます。
例: 短いメッセージを保存する 「Hello, World!」など、最大 100 バイトの長さのメッセージを保存するとします。
<code>is_active: bool = True is_paused: bool = False # 可以翻转布尔值 is_active = not is_active # 现在是 False</code>
さて、今日の勉強はここまでです。次回の記事では、さらに多くのデータ型を調べて、その機能を理解します。
上記の内容をさらに詳しく読むには、Vyper のドキュメントと Vyper の例を確認してください。
以上がVyper データ型 (シリーズ 2)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

Tomergelistsinpython、あなたはオペレーター、extendmethod、listcomfulting、olitertools.chain、それぞれの特異的advantages:1)operatorissimplebutlessforlargelist;

Python 3では、2つのリストをさまざまな方法で接続できます。1)小さなリストに適したオペレーターを使用しますが、大きなリストには非効率的です。 2)メモリ効率が高い大規模なリストに適した拡張方法を使用しますが、元のリストは変更されます。 3)元のリストを変更せずに、複数のリストをマージするのに適した *オペレーターを使用します。 4)Itertools.chainを使用します。これは、メモリ効率が高い大きなデータセットに適しています。

Join()メソッドを使用することは、Pythonのリストから文字列を接続する最も効率的な方法です。 1)join()メソッドを使用して、効率的で読みやすくなります。 2)サイクルは、大きなリストに演算子を非効率的に使用します。 3)リスト理解とJoin()の組み合わせは、変換が必要なシナリオに適しています。 4)redoce()メソッドは、他のタイプの削減に適していますが、文字列の連結には非効率的です。完全な文は終了します。

pythonexexecutionistheprocessoftransforningpythoncodeintoexecutabletructions.1)interpreterreadSthecode、変換intobytecode、thepythonvirtualmachine(pvm)executes.2)theglobalinterpreeterlock(gil)管理委員会、

Pythonの主な機能には次のものがあります。1。構文は簡潔で理解しやすく、初心者に適しています。 2。動的タイプシステム、開発速度の向上。 3。複数のタスクをサポートするリッチ標準ライブラリ。 4.強力なコミュニティとエコシステム、広範なサポートを提供する。 5。スクリプトと迅速なプロトタイピングに適した解釈。 6.さまざまなプログラミングスタイルに適したマルチパラダイムサポート。

Pythonは解釈された言語ですが、コンパイルプロセスも含まれています。 1)Pythonコードは最初にBytecodeにコンパイルされます。 2)ByteCodeは、Python Virtual Machineによって解釈および実行されます。 3)このハイブリッドメカニズムにより、Pythonは柔軟で効率的になりますが、完全にコンパイルされた言語ほど高速ではありません。

useaforloopwhenteratingoverasequenceor foraspificnumberoftimes; useawhileloopwhentinuninguntinuntilaConditionismet.forloopsareidealforknownownownownownownoptinuptinuptinuptinuptinutionsituations whileoopsuitsituations withinterminedationations。

pythonloopscanleadtoErrorslikeinfiniteloops、ModifiningListsDuringiteration、Off-Oneerrors、Zero-dexingissues、およびNestededLoopinefficiencies.toavoidhese:1)use'i


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

Dreamweaver Mac版
ビジュアル Web 開発ツール
