- pragma solidity ^0.4.0 导入solidity编译器版本 ^版本向上兼容
- contarct 表示为一个对象
- function 表示一个函数
示例代码:
pragma solidity ^0.4.0;
contract Helloworld{
string Myname = '测试一号';
function getName() returns(string){
return Myname;
}
}
函数的四种访问权限
- public :任何人都可以调用,包括DApp都使用者(app为去中心化应用)
- private :只有合约本身可以调用该函数(在另一个函数中)
- internal : 只有这份合同以及由此产生都所有合同,才能访问
- external : 只有外部可以调用该函数,而合约内部不能调用
三个状态关键字:
? constant: 可以修饰变量或者函数,并且修饰后为常量不可修改,当前仅支持值类型和字符串,若修饰函数则函数内的所有值皆无法更改
? view: 只能修饰函数,表示该函数内可以度storage类型度变量进行读取,无法修改
? pure: 只能修饰函数,表示该函数内无法读/写状态变量
示例代码:
pragma solidity ^0.4.20;
contract Test {
// 一、constant介绍
uint public v1 = 10;
uint constant v2 = 10;
string str1 = "hello!";
string constant str2 = "test!";
function f1() public{
v1 = 20 ;
// v2 = 30 ; // ERROR,无法修改constant修饰度常量(值类型)
str1 = "Hello";
// str2 = "Test!"; //ERROR,无法修改constant修饰度常量(String类型)
}
// 结构体类型 (引用类型)
struct Person{
string name;
uint age;
}
// Person constant p1 ; // ERROR,constant仅可以修饰值类型,无法修饰引用类型(string除外)
function f2() constant public{
v1 = 50;// constant修饰度函数内,如果修改了状态变量,那么状态变量的值是无法改变的!;
// 状态变量v1的值还是10,并未被修改。
}
// 二、view介绍
// 1、view只可以修饰函数,不可以修饰变量
// 2、它表明该函数内尽可以对storage类型对变量进行读取,无法修改。(类似constant修饰对函数)
// 三、pure介绍
// 1、pure只可以修饰函数
// 2、它表明该函数内,无法读/写状态变量。
function f3() pure public returns(uint){
// return v1; //ERROR,pure只能修饰函数,表示该函数内无法读/写状态变量
}
}
|