이전에 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

Tomergelistsinpython, youcanusethe operator, extendmethod, listcomprehension, oritertools.chain, 각각은 각각의 지위를 불러 일으킨다

Python 3에서는 다양한 방법을 통해 두 개의 목록을 연결할 수 있습니다. 1) 작은 목록에 적합하지만 큰 목록에는 비효율적입니다. 2) 메모리 효율이 높지만 원래 목록을 수정하는 큰 목록에 적합한 확장 방법을 사용합니다. 3) 원래 목록을 수정하지 않고 여러 목록을 병합하는 데 적합한 * 운영자 사용; 4) 메모리 효율이 높은 대형 데이터 세트에 적합한 itertools.chain을 사용하십시오.

join () 메소드를 사용하는 것은 Python의 목록에서 문자열을 연결하는 가장 효율적인 방법입니다. 1) join () 메소드를 사용하여 효율적이고 읽기 쉽습니다. 2)주기는 큰 목록에 비효율적으로 운영자를 사용합니다. 3) List Comprehension과 Join ()의 조합은 변환이 필요한 시나리오에 적합합니다. 4) READE () 방법은 다른 유형의 감소에 적합하지만 문자열 연결에 비효율적입니다. 완전한 문장은 끝납니다.

pythonexecutionissprocessoftransformingpythoncodeintoExecutableInstructions.1) the -interreadsTheCode, ConvertingItintoByTecode, thethepythonVirtualMachine (pvm)을 실행합니다

Python의 주요 특징은 다음과 같습니다. 1. 구문은 간결하고 이해하기 쉽고 초보자에게 적합합니다. 2. 개발 속도 향상, 동적 유형 시스템; 3. 여러 작업을 지원하는 풍부한 표준 라이브러리; 4. 광범위한 지원을 제공하는 강력한 지역 사회와 생태계; 5. 스크립팅 및 빠른 프로토 타이핑에 적합한 해석; 6. 다양한 프로그래밍 스타일에 적합한 다중-파라 디그 지원.

Python은 해석 된 언어이지만 편집 프로세스도 포함됩니다. 1) 파이썬 코드는 먼저 바이트 코드로 컴파일됩니다. 2) 바이트 코드는 Python Virtual Machine에 의해 해석되고 실행됩니다. 3)이 하이브리드 메커니즘은 파이썬이 유연하고 효율적이지만 완전히 편집 된 언어만큼 빠르지는 않습니다.

USEAFORLOOPHENTERATINGOVERASERASERASPECIFICNUMBEROFTIMES; USEAWHILLOOPWHENTINUTIMONDITINISMET.FORLOOPSAREIDEALFORKNOWNSEDINGENCENCENS, WHILEWHILELOOPSSUITSITUATIONS WITHERMINGEDERITERATIONS.

Pythonloopscanleadtoerrors likeinfiniteloops, modifyinglistsdizeration, off-by-by-byerrors, zero-indexingissues, andnestedloopineficiencies.toavoidthese : 1) aing'i


핫 AI 도구

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

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

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

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

인기 기사

뜨거운 도구

MinGW - Windows용 미니멀리스트 GNU
이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

Dreamweaver Mac版
시각적 웹 개발 도구

DVWA
DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

드림위버 CS6
시각적 웹 개발 도구