修饰符:
函数修饰符有 constant view pure
其中 constant 和 view 的功能是一样的 不会消耗 gas 也就是说不会做任何存储 constant 在 5.0 以后的版本中被废弃
pure 则更严格一点 不会消耗 gas 也不会使用函数的变量
继承:
合约之间的继承是通过 is 来实现的:
- contract father{
- uint public money = 1000;
- }
- contract son is father{ //son 继承 father
- function geyMoney() public view returns (uint){
- return money; // 继承父亲的方法
- }
- }
可见性:
public 与 private
对于 public 和 private, 相信学过其他主流语言的人都能明白:
public 修饰的变量和函数, 任何用户或者合约都能调用和访问.
private 修饰的变量和函数, 只能在其所在的合约中调用和访问, 即使是其子合约也没有权限访问.
external 和 internal
除 public 和 private 属性之外, Solidity 还使用了另外两个描述函数可见性的修饰词: internal(内部) 和 external(外部). external 函数被继承的时候, 需要使用 this.functionName() 来在内部调用
internal 和 private 类似, 不过, 如果某个合约继承自其父合约, 这个合约即可以访问父合约中定义的 "内部" 函数.
external 与 public 类似, 只不过这些函数只能在合约之外调用 - 它们不能被合约内的其他函数调用.
来源: http://www.bubuko.com/infodetail-2844425.html