【乐子】学习Solidity基础内容

403 阅读3分钟

“我正在参加「掘金·启航计划」”

引言

最近一直在听前端已死的言论,焦虑了好久,想了想,还是学点新东西吧!正好也写一个“Solidity入门到实战”,供大家找一个乐子!

什么是Solidity

首先,让我们简要介绍一下Solidity是什么。Solidity是一种智能合约编程语言,被用于构建分布式应用程序(DApps)和智能合约。区块链项目大部分是开源的,如果你能读懂代码,就可以规避很多亏钱项目。

Solidity具有两个特点:

  1. 基于对象:学会之后,能帮你挣钱找对象。
  2. 高级:不会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社区和资源的推荐链接:

  1. Solidity官方文档:solidity.readthedocs.io/
  2. Solidity官方论坛:forum.soliditylang.org/
  3. Solidity Reddit社区:www.reddit.com/r/ethereum/…
  4. Solidity GitHub项目:github.com/ethereum/so…
  5. Solidity Slack频道:slack.soliditylang.org/

另外,如果你想加入更广泛的x块链社区,以下是一些不错的资源:

  1. Ethereum官方网站:ethereum.org/
  2. Ethereum Reddit社区:www.reddit.com/r/ethereum/
  3. Truffle官方网站:www.trufflesuite.com/
  4. OpenZeppelin官方网站:openzeppelin.com/
  5. ConsenSys官方网站:consensys.net/

希望这些资源可以帮助你更好地了解和学习Solidity和区块链技术。