Vyper データ型 (シリーズ 2)

Barbara Streisand
Barbara Streisandオリジナル
2025-01-16 12:28:57689ブラウズ

Vyper Data Types (Series 2)

以前、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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。