solidity 函数的完整声明格式为:

function 函数名(参数)  public|private|internal|external  pure|view|constant  无返回值|returns (返回值类型)

只有当函数有返回值的情况下,才需要使用 pure 、 view 、 constant

pure : 函数即不读取也不修改状态变量,当函数返回值为自变量而非变量时,使用 pure

view : 函数读取但不修改状态变量,当函数返回值为全局变量或属性时,使用 view

constant : 可以理解为 view 的旧版本,与 view 是等价的

注: 如果一个函数中带了关键字 view 或 constant ,就不能修改状态变量的值。但凡是是带了这两个关键字,区块链就默认只是向区块链读取数据,读取数据不需要花gas,但是不花gas就不可能修改状态变量的值。写入数据或者是修改状态变量的值都需要花费gas。

Solidity开发指南(七):语法解析 - 知乎

以太坊 solidity 函数的完整声明格式相关推荐

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

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

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

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

  3. 【区块链】以太坊Solidity编程:合约调用与web3.js

    以太坊Solidity编程:合约调用与Web3.js 合约部署方法 合约的编译 使用浏览器编译器Remix 使用truffle编译,目前是最常用的编译方式 Solc或者Web3.js编译合约,使用相对 ...

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

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

  5. 以太坊solidity迁移flow cadence指南11 ---NFT盲盒应用

    NIST Warning:阅读本文,需要至少幼儿园中班数学水平,要能数到10!对那些只会1以内加法的码农,请在有经验的码农陪同下观看本文. 背景知识 本节主要介绍cadence随机数在盲盒中的应用. ...

  6. 以太坊Solidity发布0.8.3版本

    官方消息,以太坊Solidity发布0.8.3版本.官方表示,一个错误修复版本,修复了优化器如何处理Keccak256操作码的一个重要错误.此外,它还包括对优化器的两个改进. 文章链接:https:/ ...

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

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

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

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

  9. 以太坊Solidity之Truffle的使用流程与集成指南

    一.Truffle 简介 ① 什么是 Truffle ? Truffle 是一个世界级的开发环境,测试框架,以太坊的资源管理通道,致力于让以太坊上的开发变得简单. Truffle 有以下特性: 内置的 ...

  10. 以太坊开发入门,完整入门篇(小白可以看看,高手看看自己有没有遗漏的

    2019独角兽企业重金招聘Python工程师标准>>> 翻译自:https://medium.com/@mattcondon/getting-up-to-speed-on-ether ...

最新文章

  1. 逆袭!BCH交易超越BTC
  2. nodejs(三) --- nodejs进程与子进程
  3. JVM:类加载机制之类加载过程
  4. 区块链BaaS云服务(38)点存DCpool分布式存储
  5. Eclipse External Tool Configration Notepad++
  6. 开放分布式追踪(OpenTracing)入门与 Jaeger 实现
  7. Maven配置、使用
  8. 揪出占用磁盘空间的罪魁祸首-企业生产实战
  9. Windows10远程桌面连接提示:出现身份验证错误,要求的函数不受支持
  10. python-环境篇-Anaconda的安装
  11. python对二维数组统计某一行的去重计数_Python数据分析笔记——Numpy、Pandas库
  12. 由遍历序列构造二叉树
  13. Microsoft.AlphaImageLoader滤镜解说
  14. MATLAB非线性最小二乘lsqnonlin
  15. 淘宝店铺装修如何实现全屏轮播
  16. 指导CoVaR,基于Copula、GARCH、DCC、分位数回归、藤VineCopula
  17. 【转】DVI转HDMI没声音怎么办
  18. macos系统怎么取消开机启动项
  19. python一个类调用另一个类的方法_python – 从另一个类调用类方法
  20. 网页版本模拟linux,Firefox OS 模拟器

热门文章

  1. js 调用百度地图,并且定位用户地址,显示省市区街,经纬度
  2. 执行计划:SET AUTOTRACE TRACEONLY
  3. echarts改变颜色属性的demo
  4. phpstorm取消自动保存,修改未保存的文件显示*星号
  5. VMware Server 2.0下载和序列号正版
  6. 总结htmlfile:未知的运行时错误
  7. 调用 Windows 7 中英文混合朗读
  8. 如何进行影像建库及做ArcGIS Server Cache
  9. c语言交换字符串,C语言中怎样交换两个字符串?C语言中怎样交 – 手机爱问
  10. linux 6.5 mongdb php扩展插件,linux下为php添加mongodb扩展