当前位置:网站首页>solidty-基础篇-基础语法和定义函数
solidty-基础篇-基础语法和定义函数
2022-07-01 14:46:00 【new life1937】
基础语法
合约
Solidity 的代码都包裹在合约里面. 一份合约就是以太应币应用的基本模块, 所有的变量和函数都属于一份合约, 它是你所有应用的起点.
状态变量和整数
状态变量是被永久地保存在合约中。也就是说它们被写入以太币区块链中. 想象成写入一个数据库。
uint 无符号数据类型, 指其值不能是负数,
int 对于有符号的整数存在的数据类型。
string 字符串用于保存任意长度的 UTF-8 编码数据
数学运算
在 Solidity 中,数学运算很直观明了,与其它程序设计语言相同:
加法: x + y
减法: x - y,
乘法: x * y
除法: x / y
取模 / 求余: x % y (例如, 13 % 5 余 3, 因为13除以5,余3)
Solidity 还支持 乘方操作 (如:x 的 y次方) // 例如: 5 ** 2 = 25
结构体-更复杂的数据类型,有多个属性
struct 结构体允许你生成一个更复杂的数据类型,它有多个属性。
struct Person {
uint age;
string name;
}
数组
建立一个集合,可以用 数组_这样的数据类型. Solidity 支持两种数组: 静态 数组和_动态 数组:
// 固定长度为2的静态数组:
uint[2] fixedArray;
// 固定长度为5的string类型的静态数组:
string[5] stringArray;
// 动态数组,长度不固定,可以动态添加元素:
uint[] dynamicArray;
结构体类型的数组,状态变量被永久保存在区块链中。
Person[] people; // 这是动态数组,我们可以不断添加元素
公共数组
你可以定义 public 数组, Solidity 会自动创建 getter 方法. 语法如下:
Person[] public people;
其它的合约可以从这个数组读取数据(但不能写入数据),所以这在合约中是一个有用的保存公共数据的模式。
定义函数
在 Solidity 中函数定义的句法如下:
function eatHamburgers(string _name, uint _amount) {
}
这是一个名为 eatHamburgers 的函数,它接受两个参数:一个 string类型的 和 一个 uint类型的。现在函数内部还是空的。
我们的函数定义如下:
eatHamburgers("evelyn", 100);
边栏推荐
- 官宣:Apache Doris 顺利毕业,成为 ASF 顶级项目!
- Music player development example (can be set up)
- C learning notes (5) class and inheritance
- Use the npoi package of net core 6 C to read excel Pictures in xlsx cells and stored to the specified server
- 生成随机数(4位、6位)
- sqlilabs less10
- Mongodb second talk - - mongodb High available Cluster Implementation
- C 语言进阶
- Generate random numbers (4-bit, 6-bit)
- qt捕获界面为图片或label显示
猜你喜欢

【15. 区间合并】

Cannot link redis when redis is enabled

How to view the state-owned enterprises have unloaded Microsoft office and switched to Kingsoft WPS?

sqlilabs less9

In hot summer, please put away this safe gas use guide!

Yyds dry goods inventory hcie security day13: firewall dual machine hot standby experiment (I) firewall direct deployment, uplink and downlink connection switches
![[commercial terminal simulation solution] Shanghai daoning brings you Georgia introduction, trial and tutorial](/img/44/b65aaf11b1e632f2dab55b6fc699f6.jpg)
[commercial terminal simulation solution] Shanghai daoning brings you Georgia introduction, trial and tutorial

Semiconductor foundation of binary realization principle

2022-2-15 learning the imitation Niuke project - Section 3 post details

微服务开发步骤(nacos)
随机推荐
Research Report on the development trend and competitive strategy of the global display filter industry
Minimum spanning tree and bipartite graph in graph theory (acwing template)
Semiconductor foundation of binary realization principle
NPDP产品经理国际认证报名有什么要求?
tensorflow2-savedmodel convert to pb(frozen_graph)
生成随机数(4位、6位)
Is it reasonable and safe for securities companies to open accounts for 10000 free securities? How to say
Summary of leetcode's dynamic programming 5
Leetcode(69)——x 的平方根
Some thoughts on software testing
tensorflow2-savedmodel convert to pb(frozen_graph)
Develop small programs and official account from zero [phase III]
Research Report on the development trend and competitive strategy of the global commercial glassware industry
【牛客网刷题系列 之 Verilog快速入门】~ 使用函数实现数据大小端转换
What value can NPDP bring to product managers? Do you know everything?
APK签名原理
After twists and turns, I finally found the method of SRC vulnerability mining [recommended collection]
对于编程思想和能力有重大提升的书有哪些?
JVM second conversation -- JVM memory model and garbage collection
Research Report on development trend and competitive strategy of global 4-aminodiphenylamine industry