contract func_demo {uint256  count;// 仅读取状态变量function getCount() public view returns(uint256) {return count;}
}

在Solidity代码中,

函数的访问权限:

  • public 最大的访问权限,子类可以继承、可以访问,当前类能访问
  • private 仅限内部访问,子类不能继承、不能访问
  • internal 子类可以继承、可以访问,当前类可以访问
  • external 子类可以继承、可以访问,当前类不能访问

状态变量的访问权限:

  • view 对状态变量只读,这里的状态变量还包含区块链的内建对象数据、时间戳等
  • pure 既不修改,也不读取状态变量的值

如果函数不加pure或view,则代表会修改状态变量的值

https://github.com/WeBankBlockchain/SmartDev-Contract/blob/master/docs/miscs/tutorial/Solidity-basic.md

以太坊 solidity 函数修饰符总结 public、private、internal、external、view、pure的区别相关推荐

  1. 权限修饰符:public private 缺省 protected

    权限修饰符:public private 缺省 protected      可以用来修饰属性.方法     class (类)只能用public default(缺省)     protected ...

  2. 详解C#防访问修饰符:public,private,protected,internal

    访问修饰符大家都很熟悉吧,今天我们来学习一下C#里面的访问修饰符. 修饰符 含义 public 访问不受限制. protected 访问仅限于包含类或从包含类派生的类型. internal 访问仅限于 ...

  3. 以太坊Solidity函数的external/internal,public/private区别

    2019独角兽企业重金招聘Python工程师标准>>> 1 函数类型内部(internal)函数和外部(external)函数 函数类型是一种表示函数的类型.可以将一个函数赋值给另一 ...

  4. Oracle public view,【易错概念】以太坊Solidity函数的external/internal,public/private,view/pure/payable区别...

    1. 函数类型:内部(internal)函数和外部(external)函数 函数类型是一种表示函数的类型.可以将一个函数赋值给另一个函数类型的变量,也可以将一个函数作为参数进行传递,还能在函数调用中返 ...

  5. Solidity语言学习笔记————20、函数修饰符

    函数修饰符(Function Modifiers) 修饰符可以用来轻松改变函数的行为,比如在执行的函数之前自动检查条件.他们可继承合约的属性,也可被派生的合约重写. pragma solidity ^ ...

  6. python修饰符作用_python函数修饰符@的使用

    python函数修饰符@的作用是为现有函数增加额外的功能,常用于插入日志.性能测试.事务处理等等. 创建函数修饰符的规则: (1)修饰符是一个函数 (2)修饰符取被修饰函数为参数 (3)修饰符返回一个 ...

  7. 知其然(3)*.java文件中可以包含多个类,但最多只能有一个类,其修饰符为public

    *.java文件中可以包含多个类,但最多只能有一个类,其修饰符为public. 测试1:文件名Dog.java,文件内容如下:[2个类均为public] public class Dog{Dog(){ ...

  8. 以太坊solidity智能合约-生成随机数

    Solidity随机数生成 在以太坊的只能合约中,没有提供像其他面向对象编程一样的生成随机数的工具类或方法.其实,所谓的随机数也是伪随机的,没有哪一种语言能够真正的生成随机数. 对于solidity来 ...

  9. 【区块链 | Solidity】以太坊Solidity如何实现海量空投代币?

    以太坊Solidity如何实现海量空投代币? 1. 摘要 通证token项目启动时,短期内繁荣生态,要舍得给粉丝们打币,把利益分出去.本文聚焦在技术层面,实现如何快速完成TOKEN海量空投,既要节约时 ...

  10. 【重磅推荐】基于truffle-contract库实现的以太坊solidity合约调用案例(注:web3.js切勿和truffle-contract库同时使用,否则报错,无法修复!)

    1.一个基于truffle-contract库实现的以太坊solidity智能合约调用案例! 2. 注意:truffle-contract库和web3.js使用nodej或import同时导入转码的时 ...

最新文章

  1. spring中这些能升华代码的技巧,可能会让你爱不释手
  2. 到底应该选择哪种Linux.NET的部署方式?
  3. python中os.path.isdir()和os.path.isfile()的正确用法
  4. VC使用flash简易教程
  5. 对软件工程这门课的收获与总结
  6. opencv 计数后不动了 训练模型时_用OpenCV,深度学习和Python进行年龄识别
  7. MFC 获取其他窗口的Edit文本和单击Button
  8. 【原创】搭建spark环境二
  9. OCR电子发票批量自动合成软件
  10. 程序员可以培养的第二技能有哪些?
  11. 教学演示软件 模型十二 地理学的水循环模型
  12. mysql 加锁 索引_一条简单的更新语句,MySQL是如何加锁的?
  13. 如何去优化一个网站做到更好
  14. 二维baker映射 matlab,基于Baker映射的混沌图像加密算法
  15. 贝叶斯网络(belief network)
  16. OpenHarmony,一路前行,为了奇迹
  17. BUUCTF——CRYPTO(记录不熟悉的题)(4)
  18. ros2 foxy 报错缺少“diagnostic_updater“,By not providing “Finddiagnostic_updater.cmake“ in CMAKE_MODULE_P
  19. 这四十年来的香港歌坛在唱些什么,“南中国听歌最多”的数据分析师带你一探究竟...
  20. Auto.JS简介与教程

热门文章

  1. Starling滤镜合集2(新增7种滤镜)
  2. 计算机科学中常见计量单位解析
  3. 【转】一步一步学Linq to sql(十):分层构架的例子
  4. 通过编程方式在InfoPath 2010表单的下拉框修改事件中获取数据
  5. linux随手笔记(Centos为主)
  6. MyBatis学习(三)--MyBatis配置文件简介
  7. 广播接收者的特点和版本差异
  8. TemplateDoesNotExist 异常
  9. ibatis中输入/输出各种类型的参数分析及#与$区别 (转)
  10. 用ASP.NET MVC自己管理自己的View:ASP.NET MVC File Management 【转】