“我正在参加「掘金·启航计划」”
引言
最近一直在听前端已死的言论,焦虑了好久,想了想,还是学点新东西吧!正好也写一个“Solidity入门到实战”,供大家找一个乐子!
什么是Solidity
首先,让我们简要介绍一下Solidity是什么。Solidity是一种智能合约编程语言,被用于构建分布式应用程序(DApps)和智能合约。区块链项目大部分是开源的,如果你能读懂代码,就可以规避很多亏钱项目。
Solidity具有两个特点:
- 基于对象:学会之后,能帮你挣钱找对象。
- 高级:不会
solidity,在币圈显得很low。
Solidity编程的类型
这些会在之后细细说,先说一个大概,让我自己有点概念,
- 首先是数据类型
- 和其他编程语言一样,
Solidity有许多数据类型,包括布尔型、整数型、字符串和地址类型。你可以将这些数据类型用于定义变量和函数参数。 - 小栗子
// 布尔 bool public _bool = true; // 整型 int public _int = -1; // 地址 address public _address = 0x7A58c0Be72BE218B41C608b7Fe7C5bB630736C71; // 固定长度的字节数组 bytes32 public _byte32 = "MiniSolidity"; // 用enum将uint 0, 1, 2表示为Buy, Hold, Sell enum ActionSet { Buy, Hold, Sell } // 创建enum变量 action ActionSet action = ActionSet.Buy;
- 和其他编程语言一样,
- 其次是变量
- 你可以使用变量来存储数据和状态,并在程序中使用。在
Solidity中,你需要明确声明变量的数据类型,并且你可以选择将其定义为状态变量或局部变量。
- 你可以使用变量来存储数据和状态,并在程序中使用。在
- 接下来是函数
- 函数是
Solidity程序的基本组成部分,它们用于执行一系列操作或计算。函数可以带有输入参数和返回值,并且它们可以被调用或内部调用。函数也可以是可见性(visibility)的,这意味着只有特定的用户或合约可以访问它们。 - 小栗子
function <function name> (<parameter types>) {internal|external|public|private} [pure|view|payable] [returns (<return types>)]
- 函数是
- 然后是控制结构
- 在
Solidity中,你可以使用条件语句(如if/else和switch)和循环语句(如for和while)来控制程序的执行流程。这些结构和其他编程语言中的类似,但需要注意的是,Solidity的一些控制结构和其他语言略有不同。
- 在
- 还有就是是合约
- 在
Solidity中,合约是智能合约的基本组成部分。合约是一个包含状态变量、函数和事件的代码块,它们被用于执行特定的任务。合约可以被部署到区块链上,并且可以由其他用户或合约调用。 - 小栗子
abstract contract InsertionSort{ function insertionSort(uint[] memory a) public pure virtual returns(uint[] memory); }
- 在
最后
最后,记住在学习Solidity时保持耐心和开放的心态。Solidity是一种强大的编程语言,但它也是一种新兴的技术,因此在学习Solidity时可能会遇到许多挑战和问题。但是,如果你保持积极和勤奋的态度,你将能够掌握Solidity并构建出令人惊叹的DApps和智能合约。
社区推荐
以下是一些Solidity社区和资源的推荐链接:
- Solidity官方文档:solidity.readthedocs.io/
- Solidity官方论坛:forum.soliditylang.org/
- Solidity Reddit社区:www.reddit.com/r/ethereum/…
- Solidity GitHub项目:github.com/ethereum/so…
- Solidity Slack频道:slack.soliditylang.org/
另外,如果你想加入更广泛的x块链社区,以下是一些不错的资源:
- Ethereum官方网站:ethereum.org/
- Ethereum Reddit社区:www.reddit.com/r/ethereum/
- Truffle官方网站:www.trufflesuite.com/
- OpenZeppelin官方网站:openzeppelin.com/
- ConsenSys官方网站:consensys.net/
希望这些资源可以帮助你更好地了解和学习Solidity和区块链技术。