uint32 a = 0x12345678;
uint16 b = uint16(a); //0x5678
형변환 시 상위 비트가 제거되는 문제가 있다.
바이퍼에는 대신 convert라는 함수 존재
solidity
pragma solidity^0.4.0;
contract ordering {
function topFunction()
external
returns (bool) {
initializeBelowTopFunction = this.lowerFunction();
return initializeBelowTopFunction;
}
bool initializeBelowTopFunction;
bool lowerFunctionVar;
function lowerFunction()
external
returns (bool) {
lowerFunctionVar = true;
return lowerFunctionVar;
}
}
vyper
theBool:public(bool)
@public
def topFunction() -> bool:
self.theBool = True
return self.theBool
@public
def lowerFunction():
assert self.topFunction()
topFunction이 lowerFunction보다 아래 선언되면 실행되지 않는다.