这篇关于Solidity教程的博客展示了很多Solidity特性。本教程假定你对以太坊虚拟机和编程有一定的了解。
以太坊,“世界计算机”提供了一个非常强大的全球共享基础设施,使用名为Solidity的编程语言构建去中心化应用程序。
让我们开始我们的Solidity教程,介绍Solidity。
什么是Solidity?
以太坊Solidity是一种面向智能合约的高级语言,其语法与JavaScript类似。solidity是用于生成在EVM上执行的机器级代码的工具。solidity编译器获取高级代码并将其分解为更简单的指令。Solidity代码封装在Contracts中。
以太坊合约中的solidity
合约是以太坊去中心化应用程序的基本构建模块。所有变量和函数都是合约的一部分,这是所有项目的起点。一个名为MyFirst的空合约看起来像这样:
version pragma ^0.4.19;
contract MyFirst{
}
盯紧你的屏幕因为接下来在我们的Solidity教程中我们将开始编码…
Solidity文件的布局
源文件可以包含任意数量的合约定义,包括指令和pragma指令。
Version Pragma
Version Pragma是定义代码使用的Solidity编译器版本的声明。
version pragma ^0.4.00;
注意:上面显示的源文件不会使用早于版本0.4.0的编译器进行编译,也不能在从版本0.5.0开始的编译器上运行。
导入其他源文件
Ethereum Solidity支持与JavaScript中可用的导入语句非常相似的导入语句,尽管Solidity不知道default export
的概念。
在全局级别,可以使用以下形式的import语句:
import "filename";
上述语句将所有全局符号从filename
导入当前全局范围。
import * as symbolName from "filename";
注释
就像任何其他语言一样,Solidity可以使用单行和多行注释。
// This is a single-line comment.
/*
This is a
multi-line comment
*/
现在,在我们进一步深入了解Solidity教程之前,应该知道以太坊有三个可以存储项目的区域。
- 存储Storage:所有合约状态变量所在的位置。每个合约都有自己的存储,并且在函数调用之间是持久的。
- 内存Memory:保存临时值并在(外部)函数调用之间擦除,并且使用起来更便宜。
- 堆栈Stack:保存小的局部变量并且几乎可以免费使用,但只能保存有限数量的值。
对于几乎所有类型,都无法指定它们应存储的位置,因为它们在每次使用时都会被复制。
好了,既然你已经知道以太坊Solidity中的存储位置,那么让我告诉你一般的值类型。
solidity中的值类型
以下类型也称为值类型,因为这些类型的变量将始终按值传递。
布尔
关键词