Solidity入门学习笔记——编程语言,调试方法及测试手段

本文是关于Solidity编程语言的学习笔记,涵盖了语言介绍、变量类型(如整型、布尔、地址、枚举和函数)、数据结构(结构体、数组和映射)以及控制结构。Solidity是用于编写智能合约的高级语言,其语法与JavaScript相似,但有独特的特点,如address payable类型和特定的函数类型。此外,还讨论了结构体的限制和映射的哈希表特性。
摘要由CSDN通过智能技术生成

前言:此文为学习笔记,摘自Solidity 0.6.8中文文档博客以及一些学习视频中,无商业用途。侵删

一. Solidity语言介绍

以太坊Solidity是一种面向智能合约的高级语言,是静态型语言。其语法与JavaScript类似。solidity是用于生成在EVM上执行的机器级代码的工具。solidity编译器获取高级代码并将其分解为更简单的指令。Solidity代码封装在Contracts中。

二.Solitity变量类型

相对其他语言编程而言而言,Solitity的变量类型更少。

  1. 整形
  2. 布尔
  3. 地址(address)
  4. 枚举
  5. 函数
  6. 定长字节数组 类似[32]byte
    变量类型详细介绍:
    1.整形:
    1.关键字:int/uint(uint8到uint256,步长为8(无符号,最多为256位),int8为int256)各种大小的有符号和无符号整数。
    2.对于整形 X,可以使用 type(X).min 和 type(X).max 去获取这个类型的最小值与最大值。
/**定一个myfirsttesttest合约.**/
contract myfirsttest{
   
    
    uint age=8;
    
}

这里我们就定义了一个变量名为age的变量 并赋值了8.
2.布尔类型
类似于其他编程语言,分为true和false这里就不多介绍了。
3.地址
这是其他编程语言没有的。我们详细介绍一下。
1⃣️代表以太坊地址、大小20个字节、160位、所有地址都可以用uint160进行编码。
2⃣️地址类型有两种形式:
1.address:用于保存一个20字节的值(以太坊地址的大小)
2.address payable:可支付地址,与address相同。不过有成员函数transfer和pay。
⚠️这种区别背后的思想是 address payable 可以接受以太币的地址,而一个普通的 address 则不能。
注意⚠️:只能通过的表达式 payable(

) 将 address 类型转换为 address payable 类型。
在这里插入图片描述
地址类型成员变量:
1.balance(余额):可以使用 balance 属性来查询一个地址的余额, 也可以使用 transfer 函数向一个可支付地址(payable address)发送 以太币Ether:
2.send(转移):send 是 transfer 的低级版本。如果执行失败,当前的合约不会因为异常而终止,但 send 会返回 false。
特别注意:
在使用 send 的时候会有些风险:如果调用栈深度是 1024 会导致发送失败(这总是可以被调用者强制),如果接收者用光了 gas 也会导致发送失败。 所以为了保证 以太币Ether 发送的安全,一定要检查 send 的返回值,使用 transfer 或者更好的办法: 使用接收者自己取回资金的模式。
示例代码:可以使用属性余额查询地址的余额,并使用传递函数将串行发送到地址。

address x = 0x123;
address myAddress 
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值