목차
데이터 유형이란 무엇입니까?
숫자 - 정수 및 그 변형
백엔드 개발 파이썬 튜토리얼 Vyper 데이터 유형(시리즈 2)

Vyper 데이터 유형(시리즈 2)

Jan 16, 2025 pm 12:28 PM

Vyper Data Types (Series 2)

이전에 Vyper가 가장 빠르게 성장하는 스마트 계약 개발 언어 중 하나이기 때문에 판도를 바꾸는 이유에 대해 논의했습니다.

Pragma 및 Constructor와 같은 몇 가지 기본 사항도 다루었습니다. 여기에서 읽을 수 있습니다.

오늘은 데이터 유형과 작동 방식에 대해 자세히 알아보겠습니다.

데이터 유형이란 무엇입니까?

데이터 유형은 집에서 항목을 특정 위치에 정렬하는 것처럼 코드에서 다양한 정보를 구성하는 데 도움이 됩니다.

이러한 유형은 프로그램이 실행되기 전에 설정됩니다. 액체용으로 설계된 컨테이너가 고체 저장에 적합하지 않은 것처럼 Vyper의 각 변수는 설계된 데이터 유형만 저장할 수 있습니다.

코드를 작성할 때 계산을 위한 숫자, 이름을 위한 텍스트, 간단한 결정을 위한 참/거짓 등 각 변수가 보유할 데이터 유형을 지정해야 합니다. 이러한 유형을 사용하면 프로그램이 정보를 올바르게 처리하여 누군가의 이름을 곱하거나 문자를 합치는 등의 오류를 방지할 수 있습니다.

Vyper의 데이터 유형 이해

  • 부울 - 단순 참/거짓

전등 스위치와 같은 부울 값을 생각해 보세요. 참 또는 거짓의 두 가지 상태만 있을 수 있습니다. 우리는 예/아니오 결정을 내리기 위해 코드에서 이를 사용합니다.

<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 - 참/거짓 값을 반대 방향으로 뒤집음

    is_door_locked = 참
    is_door_unlocked = is_door_locked가 아님 # 결과: False

'반대'라고 말하는 것과 같습니다. 문이 잠겨 있으면 잠금이 해제된다는 것은 문이 열려 있다는 의미입니다.

  • x와 y - 두 조건이 모두 참이어야 합니다

    has_ticket = True
    has_id = 참
    can_board_plane = has_ticket 및 has_id # 결과: True

비행기에 탑승하려면 티켓과 신분증이 필요한 것처럼 두 값이 모두 true여야 결과가 true가 됩니다.

  • x 또는 y - 최소한 하나의 조건이 true여야 합니다.

    has_cash = 거짓
    has_credit_card = 참
    can_pay = has_cash 또는 has_credit_card # 결과: True

예를 들어 결제 시 현금이나 신용카드 중 하나를 사용해야 합니다.

  • x == y - 두 값이 동일한지 확인

    비밀번호 = "secret123"
    항목 = "secret123"
    is_corlect = 비밀번호 == 항목 # 결과: True

두 개의 키가 같은지 확인하는 것과 같습니다.

  • x != y - 두 값이 다른지 확인

    예상 가격 = 100
    실제 가격 = 90
    가격 변경 = 예상 가격 != 실제 가격 # 결과: True

이것은 가격이 예상과 다르다는 것을 알아차리는 등 뭔가 다른지 확인하는 것과 같습니다. 이러한 연산자는 논리적 부울 결정을 내리는 데 도움이 됩니다.

숫자 - 정수 및 그 변형

스마트 계약에서 숫자를 사용할 때 Vyper는 정수를 처리하는 두 가지 기본 방법, 즉 부호 있는 정수와 부호 없는 정수를 제공합니다. 각 방법에는 고유한 목적이 있으며, 효율적이고 안전한 코드를 작성하려면 차이점을 이해하는 것이 중요합니다.

  • 부호 있는 정수

부호 있는 정수는 아마도 Vyper에서 가장 다재다능한 숫자 유형일 것이며 양수 값과 음수 값을 모두 나타낼 수 있습니다. 은행 계좌를 생각해 보세요. 예금(양수)을 할 수 있고 돈을 인출(음수)할 수 있습니다. 부호 있는 정수가 빛나는 곳은 바로 여기입니다. age: int8 = -5와 같은 변수를 선언하면 Vyper에게 -128에서 127 사이의 숫자를 저장할 수 있는 8비트 공간을 예약하도록 지시하는 것입니다.

<code>is_active: bool = True
is_paused: bool = False

# 可以翻转布尔值
is_active = not is_active  # 现在是 False</code>
로그인 후 복사
로그인 후 복사
로그인 후 복사
로그인 후 복사

더 큰 값의 경우 Vyper는 더 큰 저장 용량을 제공합니다. int256 유형은 일반적으로 많은 숫자 연산에 사용되며 더 큰 숫자를 처리할 수 있습니다. 회사의 손익을 추적해 보세요. 잔액: 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입니다. 가격: uint256 = 1000을 작성하면 이더리움 거래의 토큰 수 또는 wei 값에 적합한 거대한 양수를 보유할 수 있는 변수를 생성합니다.

  • 십진수

정확한 계산을 위해 소수점을 사용해야 할 때

<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>
로그인 후 복사

유효한 이더리움 주소만 저장할 수 있는 변수를 생성 중입니다. 이러한 주소는 항상 "0x"로 시작하고 그 뒤에 숫자(0-9)와 문자(a-f)로 구성된 40자가 옵니다.

실제 사례 간단한 디지털 지갑 계약을 구축한다고 가정해 보겠습니다. 다음과 같이 주소를 저장할 수 있습니다.

<code>owner: address = 0x123...  # 存储钱包地址
contract: address = 0xABC...</code>
로그인 후 복사

주소 사용 Vyper의 주소에는 특별한 속성이 있습니다. 다음 내용을 확인할 수 있습니다.

  • 한 주소에 이더리움 코인이 몇 개나 들어있나요
  • 주소가 스마트 계약에 속하는지 여부
  • 코드는 컨트랙트 주소에 저장됩니다

예를 들어 주소 잔액을 확인하는 방법은 다음과 같이 간단합니다.

<code>owner: address = 0x71C7656EC7ab88b098defB751B7401B5f6d8976F</code>
로그인 후 복사

주소는 블록체인을 탐색하는 데 도움이 되며 디지털 자산과 상호 작용이 의도한 목적지에 안전하고 안정적으로 도달하도록 보장합니다.

  • 바이트 배열 - 원시 데이터용

Vyper에서는 바이트 배열을 사용하여 원시 바이너리 데이터를 처리합니다. 컴퓨터가 직접 처리할 수 있는 정보를 저장하는 컨테이너라고 생각하세요. 바이트 배열은 파일, 암호화 해시 또는 이진 작업 작업을 할 때 특히 유용합니다.

<code># 钱包的所有者
owner: address = 0x71C7656EC7ab88b098defB751B7401B5f6d8976F



# 可靠的备份地址
backup_wallet: address = 0x8626f6940E2eb28930eFb4CeF49B2d1F2C9C1199</code>
로그인 후 복사

정적 바이트 배열 정적 바이트 배열은 고정된 크기를 가지며 변경할 수 없습니다. 이렇게 하면 간단하고 효율적입니다.

예: 고정 크기 해시 저장 항상 32바이트 길이의 지문과 같은 고유 코드가 있다고 가정해 보겠습니다. Vyper에 저장하는 방법은 다음과 같습니다.

fixed_code: bytes32 이는 bytes32가 항상 32바이트임을 의미합니다.

동적 바이트 배열

동적 바이트 배열은 최대 크기를 초과하지 않는 한 다양한 길이의 데이터를 수용할 수 있습니다. 짧은 메시지와 같은 콘텐츠를 저장하는 데 도움이 됩니다.

예: 짧은 메시지 저장 최대 100바이트 길이의 "Hello, World!"와 같은 메시지를 저장한다고 가정해 보겠습니다.

<code>is_active: bool = True
is_paused: bool = False

# 可以翻转布尔值
is_active = not is_active  # 现在是 False</code>
로그인 후 복사
로그인 후 복사
로그인 후 복사
로그인 후 복사

자, 오늘의 공부는 여기까지입니다. 다음 기사에서는 더 많은 데이터 유형을 조사하고 그 기능을 이해하겠습니다.

위의 내용을 더 자세히 읽으려면 Vyper 문서와 Vyper 예제를 확인하세요.

위 내용은 Vyper 데이터 유형(시리즈 2)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Linux 터미널에서 Python 버전을 볼 때 발생하는 권한 문제를 해결하는 방법은 무엇입니까? Linux 터미널에서 Python 버전을 볼 때 발생하는 권한 문제를 해결하는 방법은 무엇입니까? Apr 01, 2025 pm 05:09 PM

Linux 터미널에서 Python 버전을 보려고 할 때 Linux 터미널에서 Python 버전을 볼 때 권한 문제에 대한 솔루션 ... Python을 입력하십시오 ...

중간 독서를 위해 Fiddler를 사용할 때 브라우저에서 감지되는 것을 피하는 방법은 무엇입니까? 중간 독서를 위해 Fiddler를 사용할 때 브라우저에서 감지되는 것을 피하는 방법은 무엇입니까? Apr 02, 2025 am 07:15 AM

Fiddlerevery Where를 사용할 때 Man-in-the-Middle Reading에 Fiddlereverywhere를 사용할 때 감지되는 방법 ...

한 데이터 프레임의 전체 열을 Python의 다른 구조를 가진 다른 데이터 프레임에 효율적으로 복사하는 방법은 무엇입니까? 한 데이터 프레임의 전체 열을 Python의 다른 구조를 가진 다른 데이터 프레임에 효율적으로 복사하는 방법은 무엇입니까? Apr 01, 2025 pm 11:15 PM

Python의 Pandas 라이브러리를 사용할 때는 구조가 다른 두 데이터 프레임 사이에서 전체 열을 복사하는 방법이 일반적인 문제입니다. 두 개의 dats가 있다고 가정 해

10 시간 이내에 프로젝트 및 문제 중심 방법에서 컴퓨터 초보자 프로그래밍 기본 사항을 가르치는 방법? 10 시간 이내에 프로젝트 및 문제 중심 방법에서 컴퓨터 초보자 프로그래밍 기본 사항을 가르치는 방법? Apr 02, 2025 am 07:18 AM

10 시간 이내에 컴퓨터 초보자 프로그래밍 기본 사항을 가르치는 방법은 무엇입니까? 컴퓨터 초보자에게 프로그래밍 지식을 가르치는 데 10 시간 밖에 걸리지 않는다면 무엇을 가르치기로 선택 하시겠습니까?

Uvicorn은 Serving_forever ()없이 HTTP 요청을 어떻게 지속적으로 듣습니까? Uvicorn은 Serving_forever ()없이 HTTP 요청을 어떻게 지속적으로 듣습니까? Apr 01, 2025 pm 10:51 PM

Uvicorn은 HTTP 요청을 어떻게 지속적으로 듣습니까? Uvicorn은 ASGI를 기반으로 한 가벼운 웹 서버입니다. 핵심 기능 중 하나는 HTTP 요청을 듣고 진행하는 것입니다 ...

Inversiting.com의 크롤링 메커니즘을 우회하는 방법은 무엇입니까? Inversiting.com의 크롤링 메커니즘을 우회하는 방법은 무엇입니까? Apr 02, 2025 am 07:03 AM

Investing.com의 크롤링 전략 이해 많은 사람들이 종종 Investing.com (https://cn.investing.com/news/latest-news)에서 뉴스 데이터를 크롤링하려고합니다.

See all articles