- 只有数值变量可以声明
constant
和immutable
string
和bytes
特殊,虽然是引用变量,但可以声明为constant
,但不能为immutable
。- 状态变量声明这两个关键字之后,不能在初始化后更改数值。这样做的好处是提升合约的安全性并节省
gas
。 constant
变量必须在声明的时候初始化,immutable
变量可以在声明时或构造函数中初始化,因此更加灵活。- 在
Solidity v8.0.21
以后,immutable
变量不需要显式初始化。
- if-else
- for
- while
- do while
- 三元运算符
// 插入排序
function insetSort(uint256[] memory arr)
public
pure
returns (uint256[] memory)
{
for (uint256 i = 1; i < arr.length; i++) {
uint256 temp = arr[i];
uint256 j = i;
while (j >= 1 && temp < arr[j - 1]) {
arr[j] = arr[j - 1];
j--;
}
arr[j] = temp;
}
return arr;
}