概要
本文延续专栏的编程基础一进行学习,本文主要内容讲解Solidity的语句以及修饰符等内容
语句
条件语句
if/else
条件语句和其他语言一样,但需要注意的是if(1) {...}
在Solidity是无效的,但也可以通过强制类型转换将1转成true,尽管与其他语言一样{}
语句块只有一个语句时可以省略{}
,但便于开发者查看,建议采用{不省略}的编程规范。
if (totalPoints > bet.line) {
} else if (totalPoints < bet.line) {
} else {
}
循环语句
- while语句
while(true) {
if (true) {
break;
}
}
- for语句
for(uint i = 0; i < 10; i++) {
if (i == 2) {
return;
} else {
///
}
if (i == 1 ) {
continue;
}
///
}
- break: 用来跳出现有循环
- return: 用来从函数方法中返回
- continue: 用来退出当前的循环,跳到下一次的循环开始
除了以上的whille、for、if、else、break、continue、return
,还有 ? :
三元操作符
a > b ? a : b 表示如果 a > b 则返回a,否则返回b
修饰符
在上一章节 我们讲到函数类型时,给出其声明模板
function (<parameter types>) {
internal(默认)|external} [pure|constant|view|payable] [returns (<return types>)]
模板中的external、internal、pure、constant、view、payable
即是我们常说的函数修饰符。而其中的 external、internal、public、private
是针对函数的可见性而言,pure、constant、view、payable
是针对对合约状态变量的修改能力做出规定。
由于 Solidity 有两种函数调用(内部调用不会产生实际的 EVM 调用或称为“消息调用”,而外部调用则会产生一个 EVM 调用), 函数和状态变量有四种可见性类型。 函数可以指定为 external
,public
,internal
或者