solidity教程:solidity语言入门

论坛 期权论坛 区块链     
编程狂魔   2018-11-20 23:31   3813   0
            这篇关于Solidity教程的博客展示了很多Solidity特性。本教程假定你对以太坊虚拟机和编程有一定的了解。
以太坊,“世界计算机”提供了一个非常强大的全球共享基础设施,使用名为Solidity的编程语言构建去中心化应用程序。
让我们开始我们的Solidity教程,介绍Solidity。
[h2]什么是Solidity?[/h2]以太坊Solidity是一种面向智能合约的高级语言,其语法与JavaScript类似。solidity是用于生成在EVM上执行的机器级代码的工具。solidity编译器获取高级代码并将其分解为更简单的指令。Solidity代码封装在Contracts中。
[h2]以太坊合约中的solidity[/h2]合约是以太坊去中心化应用程序的基本构建模块。所有变量和函数都是合约的一部分,这是所有项目的起点。一个名为MyFirst的空合约看起来像这样:
  1. version pragma ^0.4.19;contract MyFirst{}
复制代码

image盯紧你的屏幕因为接下来在我们的Solidity教程中我们将开始编码......
[h2]Solidity文件的布局[/h2]源文件可以包含任意数量的合约定义,包括指令和pragma指令。
[h2]Version Pragma[/h2]Version Pragma是定义代码使用的Solidity编译器版本的声明。
  1. version pragma ^0.4.00;
复制代码
注意:上面显示的源文件不会使用早于版本0.4.0的编译器进行编译,也不能在从版本0.5.0开始的编译器上运行。
[h2]导入其他源文件[/h2]Ethereum Solidity支持与JavaScript中可用的导入语句非常相似的导入语句,尽管Solidity不知道
  1. default export
复制代码
的概念。
在全局级别,可以使用以下形式的import语句:
  1. import "filename";
复制代码
上述语句将所有全局符号从
  1. filename
复制代码
导入当前全局范围。
  1. import * as symbolName from "filename";
复制代码
[h2]注释[/h2]就像任何其他语言一样,Solidity可以使用单行和多行注释。
  1. // This is a single-line comment./*This is amulti-line comment*/
复制代码
现在,在我们进一步深入了解Solidity教程之前,应该知道以太坊有三个可以存储项目的区域。
  • 存储Storage:所有合约状态变量所在的位置。每个合约都有自己的存储,并且在函数调用之间是持久的。
  • 内存Memory:保存临时值并在(外部)函数调用之间擦除,并且使用起来更便宜。
  • 堆栈Stack:保存小的局部变量并且几乎可以免费使用,但只能保存有限数量的值。
对于几乎所有类型,都无法指定它们应存储的位置,因为它们在每次使用时都会被复制。
好了,既然你已经知道以太坊Solidity中的存储位置,那么让我告诉你一般的值类型。
[h2]solidity中的值类型[/h2]以下类型也称为值类型,因为这些类型的变量将始终按值传递。

image[h3]布尔[/h3]关键词:bool
值是常数,即true或false。
[h3]整型[/h3]关键字:int/uint(uint8到uint256,步长为8(无符号,最多为256位),int8为int256)
各种大小的有符号和无符号整数。
例:
  1. contract MySample{uint UnsignedInt =50;}
复制代码
在上面的语句中,我们创建了一个名为InsignedInt的uint并将其设置为50。
[h3]地址[/h3]关键字:address
保存一个20字节的值(以太坊地址的大小)。地址类型也有
  1. members
复制代码
,并作为所有合约的基础。
[h3]地址成员:balance与transfer[/h3]可以使用属性balance查询地址的余额,并使用transfer函数将以太网发送到地址。
  1. address x = 0x123;address myAddress = this;if  (x.balance < 10 && myAddress.balance > = 10)x.transfer(10);
复制代码
[h3]字符串[/h3]String:字符串文字用双引号或单引号如“foo”或'bar'编写。
用于任意长度的UTF数据。
  1. string language ="Solidity";
复制代码
这些值类型可以在包含运算符的表达式中相互交互。接下来,在我们的Solidity教程中,让我告诉你各种运算符。
[h2]运算符[/h2]solidity的运算符与JavaScript相同。Solidity有四种类型的运算符:

image[h3]算术运算符[/h3]Solidity具有非常简单的数学运算。以下与大多数编程语言类似:
  • 增加:x + y
  • 减法:x - y
  • 乘法:x * y
  • 除法:x / y
  • 取整/求余:x%y
Solidity还提供了使用指数运算符的选项,具体如下:
  1. uint x = 10 **  3; // equal to 10^3 = 1000
复制代码
[h3]增量运算符[/h3]增量运算符的稳定性:a++,a- ,++a,-a,a+=1,a=a+1
适用于其他编程语言的规则也是类似的。
[h3]按位运算符[/h3]以下是运算符:(按位OR)'|',(按位异或),(按位求反)'~',(按位右移)'>>',(按位左移)'
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:36
帖子:28
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP