Ethereum-Solidity 测验 Q17:Solidity 使用哪些可见性修饰符?

发布: (2026年1月10日 GMT+8 19:34)
2 min read
原文: Dev.to

Source: Dev.to

可见性修饰符概览

修饰符合约内部派生合约其他合约外部
public
internal
private
external❌ (via this)

Solidity 使用四种可见性修饰符来控制函数和状态变量的访问方式:

  • public – 可以在合约内部、其他合约以及外部调用。
  • external – 可以在其他合约和外部调用;不能在同一合约内部直接调用(除非通过 this)。
  • internal – 可以在同一合约及其派生合约(继承)中调用;不能在其他合约或外部调用。
  • private – 只能在同一合约内部调用;不能在派生合约、其他合约或外部调用。

重要说明

  • 状态变量可以是 publicinternalprivate(不能是 external)。
  • 函数可以是 publicinternalprivateexternal
  • public 状态变量会自动生成 getter 函数。
  • external 函数比 public 更省 gas,因为它们不创建内部函数副本。
  • privateinternal 并不提供安全性;区块链数据始终是可见的,它们仅限制函数调用的访问方式。
  • 对于需要从合约外部调用的函数,请使用 external
  • 对于通过继承使用的辅助函数,请使用 internal
  • 使用 private 时需谨慎——通常仅用于内部辅助函数。
  • 对于需要公开访问的状态变量,请使用 public
  • 请记住,private 并不提供安全性,它仅防止意外调用。
Back to Blog

相关文章

阅读更多 »