solidity笔记二

学习笔记web3

函数

  • 可见性修饰符(必填)

    • public: 任何地址都可以调用,包括外部地址。
    • internal: 只有合约内部和继承合约可以调用。
    • external: 只有外部地址可以调用(不能在合约内部调用)。
    • private: 仅合约内部可以调用。
  • 状态修改性()

    • pure: 函数不读取或修改合约的状态,不接受 ether。
    • view: 函数不修改合约的状态,但可以读取合约的数据,不接受 ether。
    • payable: 函数可以接受 ether,并且可能修改合约的状态。
  • 注意

    • 合约中定义的函数需要明确指定可见性,它们没有默认值。
    • public|private|internal 也可用于修饰状态变量。public 变量会自动生成同名的 getter 函数,用于查询数值。未标明可见性类型的状态变量,默认为 internal。
function <function name>(<parameter types>) {internal|external|public|private} [pure|view|payable] [returns (<return types>)]

关键字

  • constant(常量)
  • immutable(不变量)让不应该变的变量保持不变可以节省 gas,提升合约安全性。

modifier的主要使用场景是运行函数前的检查,例如地址,变量,余额等。