Solidity基础语法
文章平均质量分 50
想成为技匠的小猿
燃即青春,拼搏不息,想成为技匠的大学生小猿。
展开
-
Solidity fallback函数和receive函数详解(2023版)
通过这两个特殊函数,我们就可以实现外部转账的功能,比如从metamask账户转账到该合约中。原创 2023-05-14 15:13:57 · 329 阅读 · 0 评论 -
Solidity 事物控制断言与自定义函数修饰符(2023版)
一般配合断言使用,在配置业务逻辑的时候,在合约内部可能有多个条件判断,这些条件判断都会写成require或者assert。这里的自定义函数修饰符可以自定义一个标识,每次写的时候直接把这个标识拿过来直接用就可以了。...//占位符号,标识modifier的结束;原创 2023-05-14 15:15:04 · 112 阅读 · 0 评论 -
Solidity 值传递和引用传递详解(2023版)
如果一个变量是值类型,那么当把它的值传给另一个变量时,是复制值,对新变量的操作不会影响原来的变量;如果该变量是引用类型,那么当它传值给另一个变量时,则是把该值的地址复制给新的变量。布尔类型(bool)、整型(int)、地址类型(address)、定长字节数组(bytes)、枚举类型(enums)、函数类型(function);如果一个变量是引用类型,给它赋值时可以是值,也可以是引用,这决定于该变量是Storage类型还是Memory类型。如果一个变量是值类型,给它赋值时永远是值传递!原创 2023-05-14 15:13:24 · 287 阅读 · 0 评论 -
Solidity 引用类型(数组,结构,映射)详解(2023版)
数组是数据类型,但更具体地说,它们是依赖于其他数据类型的数据结构。数组是指相同类型的数值组。数组有助于将这些值存储在一起,并简化迭代、排序和搜索该组中元素或子元素的过程。Solidity 提供了丰富的数组结构,可以满足不同的需求。原创 2023-05-13 17:27:56 · 415 阅读 · 0 评论 -
Solidity 充值,提现及转账操作(2023版)
【代码】Solidity 充值,提现及转账操作(2023版)原创 2023-05-13 16:42:08 · 808 阅读 · 0 评论 -
Solidity 函数原型与循环语句详解(2023版)
function是函数声明的关键字;func_name自定义函数名称,与我们习惯的函数命名规范没有区别;paramlist参数列表,可以0或多个参数,格式是:参数类型 参数名称;modifiers函数的修饰符,非常关键;returns返回值关键字,看到s应该能想到可以返回多个值;returnlist返回值类型列表;原创 2023-05-13 16:08:09 · 72 阅读 · 0 评论 -
Solidity 内建对象详解(2023版)
内建对象可以分为两个,分别为block和msg;原创 2023-05-13 15:47:48 · 113 阅读 · 0 评论 -
Solidity 基础数据类型详解(2023版)
1.1 整形整数有助于将数字存储在合约中。Solidity 提供以下两种类型的整数:有符号的整数:带符号的整数可以同时具有负值和正值。无符号整数:无符号整数只能保持正值和零。除正值和零值以外,它们也可以保持负值。对于每种类型,Solidity 都有多种类型的整数。Solidity 提供了 uint8 类型来表示8位无符号整数,并且以8的倍数表示,直到达到256。总之,可以声明32个不同的具有8的倍数的无符号整数,例如 uint8、uint16、unit24、uint256 位。原创 2023-05-13 15:26:01 · 278 阅读 · 0 评论 -
Solidity 接口与继承详解(2023版)
接口(interface):如果我们合约需要和区块链上其他合约会话,则需定义interface。外部合约使用函数可直接读取其中数据。也就是说interface是用于定义合约接口,无需实现接口内定义的函数。原创 2023-05-13 15:00:56 · 362 阅读 · 0 评论 -
Solidity library库的使用详解(2023版)
库是智能合约的精简版。就像智能合约一样,我们可以在其他合约中使用库的函数。但与智能合约不同的是,库不能有任何状态变量,它们也不能继承其他合约。这个库的目的很简单,这些库位于区块链上,包含可以被其他合约使用的代码。library用于定义合约库;库合约可以被其他合约引用并使用其提供的方法;参考库:http://github.com/OpenZeppelin/openzeppelin-contracts(OpenZeppelin Contracts 是一个用于安全智能合约开发的库。原创 2023-05-13 11:02:34 · 582 阅读 · 1 评论 -
Solidity abstract关键字的使用详解(2023版)
用于定义抽象合约,供其他合约继承使用抽象合约将合约的定义与其实现脱钩,从而提供了更好的可拓展性;简化了诸如Template方法的模式,并消除了代码重复;如果未实现合约中的至少一项功能,则需要将合约标记为抽象;即使实现了所有功能,合约也可以被标记为抽象的;抽象合约不能实例化;如果合约继承自抽象合约,并且没有通过覆盖实现所有未实现的功能,则也需要将其标记为抽象;抽象合同不能覆盖未实现的函数;原创 2023-05-13 10:41:51 · 143 阅读 · 1 评论 -
Solidity 合约调试和event事件(2023版)
目前主流的定义:事件是以太坊虚拟机(EVM)日志基础设施提供的一个便利接口。当被发送事件(调用)时,会触发参数存储到交易的日志中(一种区块链上的特殊数据结构)。这些日志与合约的地址关联,并记录到区块链中。换句话来说区块链是打包一系列交易的区块组成的链条,每一个交易“收据”会包含0到多个日志记录,日志代表着智能合约所触发的事件。event相当于solidity的日志存储成本上来说,event比storage更便宜event可以被客户端程序订阅使用emit触发event事件。原创 2023-05-13 10:22:31 · 406 阅读 · 1 评论