Solidity语法深入讲解(函数可见性,函数修饰器,回退函数,事件,异常处理)

Solidity函数可见性

函数的可见性可以指定为 external,public ,internal 或者 private;
对于状态变量,不能设置为 external ,默认是 internal。

• external :外部函数作为合约接口的一部分,意味着我们可以从其他合约和交易中调用。 一个外部函数 f不能从内部调用(即 f 不起作用,但 this.f() 可以)。 当收到大量数据的时候,外部函数有时候会更有效率。

• public :public 函数是合约接口的一部分,可以在内部或通过消息调用。对于 public 状态变量, 会自动生成一个 getter 函数。

• internal :这些函数和状态变量只能是内部访问(即从当前合约内部或从它派生的合约访问),不使用 this 调用。

• private :private 函数和状态变量仅在当前定义它们的合约中使用,并且不能被派生合约使用。

// 以下代码编译错误
pragma solidity >=0.4.0 <0.6.0; 
contract C {
   
    
	uint private data; 
	function f(uint a) private pure returns(uint b) {
   
    
	return a + 1; 
	} 
	function setData(uint a) public {
   
    data = a; } 
	function getData() public view returns(uint) {
   
    return data; } 
	function compute(uint a, uint b) internal pure returns (uint)
	 {
   
    return a + b; } 
} 
contract D {
   
    
	function readData() public {
   
    
	C c = new C(); 
	uint local = c.f(7)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值