033.Solidity入门——20函数的可视范围

修饰符

可见性描述

public

在合约内和合约外都可以被访问,即合约内外部都可以调用该函数。这种类型的函数可以被合约内和合约外的任何地址调用。

private

只有在当前合约内可以被访问,即只有合约内可以调用该函数。这种类型的函数只能在合约内部被调用。

external

在合约外部可以被访问,但在合约内部不能被访问。这种类型的函数只能被合约外的地址调用。

internal

只有在当前合约内以及继承合约中可以被访问。这种类型的函数只能在当前合约内部和合约继承树上的合约内部被调用。

示例代码:

pragma solidity ^0.8.7;

contract FunctionVisibility {
    uint public num; // 公有变量

    constructor() {
        num = 0;
    }

    function publicFunc() public view returns (uint) {//公有函数
        return num;
    }

    function privateFunc() private view returns (uint) {//私有函数
        return num;
    }

    function externalFunc() external view returns (uint) {//外部函数
        return num;
    }

    function internalFunc() internal view returns (uint) {//内部函数
        return num;
    }

    function callPrivateFunc() public view returns (uint) {
        return privateFunc(); // 只能在合约内调用
    }

    function callExternalFunc() public view returns (uint) {
        return externalFunc(); // 只能在合约外调用
    }

    function callInternalFunc() public view returns (uint) {
        return internalFunc(); // 只能在当前合约内或继承的合约内调用
    }
}

注:

num:公有变量,可以被合约内外的所有地址访问。

publicFunc :公有函数,也可以被合约内外的所有地址访问。

privateFunc :私有函数,只能在当前合约内部被访问。

externalFunc :外部函数,只能在合约外被访问。

internalFunc :内部函数,只能在当前合约内部以及继承的合约内部被访问。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值