WTF Solidity极简入门第十六讲:函数重载

  • 本文是《Solidity 极简入门》系列第十六讲,重点介绍 Solidity 中函数重载的概念与用法
  • 函数重载允许同名但参数类型不同的函数共存,被视为不同函数(但修饰器 modifier 不支持重载)
  • 举例说明:定义两个 saySomething() 函数,一个无参数输出"Nothing",另一个接收 string 参数并输出该字符串
  • 调用重载函数时,Solidity 会匹配实参与函数参数类型,若多个函数同时匹配可能报错(但作者实测未复现文档描述的 uint8/uint256 冲突案例)
  • 教程开源地址及社区链接附于文末,适合初学者系统学习 Solidity 编程基础
总结

原文:《Solidity 极简入门: 16. 函数重载》

我最近在重新学 solidity,巩固一下细节,也写一个「Solidity 极简入门」,供小白们使用(编程大佬可以另找教程),每周更新 1-3 讲。

所有代码和教程开源在 github: github.com/AmazingAng/WTFSolidity

重载

solidity 中允许函数进行重载(overloading),即名字相同但输入参数类型不同的函数可以同时存在,他们被视为不同的函数。注意,solidity 不允许修饰器(modifier)重载。

函数重载

举个例子,我们可以定义两个都叫 saySomething() 的函数,一个没有任何参数,输出"Nothing";另一个接收一个 string 参数,输出这个 string。

WTF Solidity极简入门第十六讲:函数重载

实参匹配(Argument Matching)

在调用重载函数时,会把输入的实际参数和函数参数的变量类型做匹配。

如果出现多个匹配的重载函数,solidity 文档上说会报错。它给的例子是两个叫 f() 的函数,一个参数为 uint8,另一个为 uint256。文档说如果输入 50,既可以被转换为 uint8,也可以被转换为 uint256,因此会报错。但是我没遇到:

WTF Solidity极简入门第十六讲:函数重载

总结

这一讲,我们介绍了 solidity 中函数重载的基本用法:名字相同但输入参数类型不同的函数可以同时存在,他们被视为不同的函数。

推特:@0xAA_Science

社区:Discord微信群官网 wtf.academy

所有代码和教程开源在github: github.com/AmazingAng/WTFSolidity

分享至:

作者:0xAA

本文为PANews入驻专栏作者的观点,不代表PANews立场,不承担法律责任。

文章及观点也不构成投资意见

图片来源:0xAA如有侵权,请联系作者删除。

关注PANews官方账号,一起穿越牛熊
推荐阅读
2024-03-19 09:00
2024-03-19 09:00
2024-03-19 08:00
2024-03-19 07:00
2024-03-19 06:00
2024-03-19 05:00

热门文章

行业要闻
市场热点
精选读物

精选专题

App内阅读