Solidity笔记

  1. pragma solidity ^0.4.0 导入solidity编译器版本 ^版本向上兼容
  2. contarct 表示为一个对象
  3. function 表示一个函数

示例代码:

pragma solidity ^0.4.0;


contract Helloworld{
    string Myname = '测试一号';
    
    
    function getName() returns(string){
        return Myname;
    }
    
}

函数的四种访问权限

  1. public :任何人都可以调用,包括DApp都使用者(app为去中心化应用)
  2. private :只有合约本身可以调用该函数(在另一个函数中)
  3. internal : 只有这份合同以及由此产生都所有合同,才能访问
  4. 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只能修饰函数,表示该函数内无法读/写状态变量
    }
    
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值