Solidity
不允許從“int_const -1”到“uint128”的顯式類型轉換
我正在使用 sol 0.8.0 進行編譯,以下行在標題中產生錯誤:
uint256 public constant MASK = uint128(~0);
錯誤:
Explicit type conversion not allowed from "int_const -1" to "uint128".
將變數更改為此:
uint256 public constant MASK = ~0;
錯誤變為:
Type int_const -1 is not implicitly convertible to expected type uint256. Cannot implicitly convert signed literal to unsigned type.
將其更改為:
uint256 public constant MASK = type(uint128).max;
從堅固
>0.8.0
。僅當文字位於和
T
之間時,才允許在文字和整數類型之間進行顯式轉換。特別是,用 替換 的用法。type(T).min``type(T).max``uint(-1)``type(uint).max