当前位置:网站首页>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);
边栏推荐
- Mongodb second talk - - mongodb High available Cluster Implementation
- Reorganize the trivial knowledge points at the end of the term
- 保证生产安全!广州要求危化品企业“不安全不生产、不变通”
- Don't want to knock the code? Here comes the chance
- [zero basic IOT pwn] reproduce Netgear wnap320 rce
- The first word of JVM -- detailed introduction to JVM and analysis of runtime data area
- Vnctf2022 open web gocalc0
- Research Report on the development trend and competitive strategy of the global ultrasonic scalpel system industry
- MongoDB第二話 -- MongoDB高可用集群實現
- sqlilabs less13
猜你喜欢

Sqlachemy common operations

官宣:Apache Doris 顺利毕业,成为 ASF 顶级项目!
![[getting started with Django] 13 page Association MySQL](/img/78/cbf88ae3c3d311edd7d9af8c985749.jpg)
[getting started with Django] 13 page Association MySQL "multi" field table (check)

C 语言基础

Word2vec yyds dry goods inventory

【R语言数据科学】:机器学习常见评估指标

Summary of leetcode's dynamic programming 5
![[14. Interval sum (discretization)]](/img/e5/8b29aca7068a6385e8ce90c2742c37.png)
[14. Interval sum (discretization)]

Phpcms realizes the direct Alipay payment function of orders

The first word of JVM -- detailed introduction to JVM and analysis of runtime data area
随机推荐
sqlilabs less-8
户外LED显示屏应该考虑哪些问题?
Advanced C language
JVM performance tuning and practical basic theory part II
C 语言进阶
Research Report on the development trend and competitive strategy of the global diamond suspension industry
[15. Interval consolidation]
One of the first steps to redis
Problem note - Oracle 11g uninstall
【牛客网刷题系列 之 Verilog快速入门】~ 使用函数实现数据大小端转换
sqlilabs less10
手把手带你入门 API 开发
关于重载运算符的再整理
保证生产安全!广州要求危化品企业“不安全不生产、不变通”
适合没口才的人做,加入中视频伙伴计划收益是真香,一个视频拿3份收益
Research Report on development trend and competitive strategy of global consumer glassware industry
[zero basic IOT pwn] reproduce Netgear wnap320 rce
SQLAchemy 常用操作
2022-2-15 learning xiangniuke project - Section 4 business management
Take you to API development by hand