智能合约编程个人学习笔记1

文章介绍了Solidity编程的基础知识,包括pragma的作用,contract的类比,uint状态变量,以及function的定义。重点讨论了view和pure关键字,它们分别允许无状态修改的读取和完全不读取状态的操作,并且不消耗gas。此外,还提到了逻辑与位运算符的使用,整数溢出和除数为0的错误处理,以及固定和可变字节数组与string类型的交互。
摘要由CSDN通过智能技术生成

1、代码解析:

在这里插入图片描述
其中 pragmasolidity的编译控制指令,后面的*<4.0.26 <=9.0.0* 是指solity源文件可以被大于4.0.26 小于等于9.0.0版本的编译器编译。

contract

相当于java中的class,用来创建一个合约。

uint public money = 100

创建一个访问权限为public的无符号整数类型的状态变量。

function paToAcount(address add) public returns(string)

function:如果对JavaScript有过了解的应该熟悉,它是用来定义一个方法/函数。
address:是属于solidity的一个概念:账户 这个是由一串16进制数表示外部账户地址和合约地址(后面会详细说)
returns(string):表示方法会返回一个string类型的返回值。注意:string为小写。

关键字view和pure

说到这个关键字就需要先说一下以太坊的特性,对于合约的部署与方法的调用都是需要花费gas(也就是以太币,相当于手续费)。

但是对于一些合约里的方法来说,会频繁调用,并且并没有对状态变量进行修改,希望可以在调用时可以不花费gas就可以根据这两个关键字的特性,看情况使用。

view

是solidity的特有关键字,它只能修饰在方法上,被它修饰的方法可以读取合约的状态变量并且不花费gas,也就是JAVA中的属性,但是方法中不能对状态变量进行修改。
示例代码

在这里插入图片描述
这是账户在调用test方法前的余额
在这里插入图片描述
点击test按钮,调用方法后,会展示返回值
在这里插入图片描述查看调用后的余额并没有变化。

pure

是solidity的特有关键字,它只能修饰在方法上,被它修饰的方法不可以读取合约的状态变量并且调用方法时不花费gas。
在这里插入图片描述
示例代码中用pure修饰的方法中对状态变量进行了修改。

在这里插入图片描述
当点击编译后,发现报错,不能修改。

运算符

逻辑运算符

&&、|| 、!、bool类型与JAVA相同。

位运算符

0 1 0 1
0 1 1 0

&:按位与 都为1是1 其余为零 结果:0 1 0 0
| :按位或 有1就为1 其余为零 结果:0 1 1 1
~:取反 遇1为0 遇0为1 第一行结果:1 0 1 0
^:按位异或 相同为0 不同为1 结果:0 0 1 1
还有 左移与右移、加减乘除等 与JAVA相同

注意
1、整数溢出错误:
int8 :代表是用8个2进制数来代表数字 所以能代表的范围是0~255
在这里插入图片描述

255 用8位2进制数表示为:1 1 1 1 1 1 1 1
当255 加一之后 变为: 1 0 0 0 0 0 0 0 0
int8 就会取后面的8为位: 0 0 0 0 0 0 0 0

在这里插入图片描述所以应该注意整数溢出错误。

2、除数为0错误:
在solidity中当除数为0是 编译是可以通过的,但在调用时就会出错。

字节数组

字节数组分为两类:固定字节数组与可变字节数组

固定字节数组

在这里插入图片描述固定字节数组的长度不可变。

可变字节数组

在这里插入图片描述在这里插入图片描述
点击黄色按钮 初始化字节数组
在点击getInitLen
在这里插入图片描述
点击test按钮
在这里插入图片描述
数组长度变为5 长度可变
在这里插入图片描述
将test的返回值修改一下 返回数组内容
在这里插入图片描述
可以看出长度确实是变了 用0补充

string

string 可以与字节数组相互转化 通过转化为字节数组,获取长度与改变内容
在这里插入图片描述
在这里插入图片描述当点击changeName后

在这里插入图片描述

个人学习记录、如有错误请多指正

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值