当前位置:网站首页>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);
边栏推荐
- Yyds dry goods inventory hcie security day13: firewall dual machine hot standby experiment (I) firewall direct deployment, uplink and downlink connection switches
- 微服务开发步骤(nacos)
- WebSocket(简单体验版)
- 【R语言数据科学】:机器学习常见评估指标
- 【14. 区间和(离散化)】
- 互联网医院系统源码 医院小程序源码 智慧医院源码 在线问诊系统源码
- NPDP能给产品经理带来什么价值?你都知道了吗?
- MongoDB第二话 -- MongoDB高可用集群实现
- JVM second conversation -- JVM memory model and garbage collection
- After twists and turns, I finally found the method of SRC vulnerability mining [recommended collection]
猜你喜欢

Rearrangement of overloaded operators

sqlilabs less9

【14. 区间和(离散化)】

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

【15. 区间合并】

Vnctf2022 open web gocalc0

JVM第二话 -- JVM内存模型以及垃圾回收

Today, with the popularity of micro services, how does service mesh exist?

MIT team used graph neural network to accelerate the screening of amorphous polymer electrolytes and promote the development of next-generation lithium battery technology

手把手带你入门 API 开发
随机推荐
【R语言数据科学】:机器学习常见评估指标
[leetcode 324] 摆动排序 II 思维+排序
sqlilabs less-8
[R language data science]: common evaluation indicators of machine learning
643. Maximum average number of subarrays I
Research Report on the development trend and competitive strategy of the global facial wrinkle removal and beauty instrument industry
It's suitable for people who don't have eloquence. The benefits of joining the China Video partner program are really delicious. One video gets 3 benefits
JVM second conversation -- JVM memory model and garbage collection
[Verilog quick start of Niuke series] ~ multi function data processor, calculate the difference between two numbers, use generate... For statement to simplify the code, and use sub modules to realize
Research Report on the development trend and competitive strategy of the global powder filling machine industry
Rearrangement of overloaded operators
WebSocket(简单体验版)
Internet hospital system source code hospital applet source code smart hospital source code online consultation system source code
Provincial election + noi Part 10 probability statistics and polynomials
Sqlachemy common operations
C learning notes (5) class and inheritance
三十之前一定要明白的职场潜规则
What are the requirements for NPDP product manager international certification registration?
Research Report on the development trend and competitive strategy of the global aviation leasing service industry
Generate random numbers (4-bit, 6-bit)