Solidity语言类型  / 学习智能合约#2

Solidity语言类型 / 学习智能合约#2

solidity.jpg

一图胜千言! 现在比较主流的编写智能合编的语言就是Solidity,一种静态类型的高级语言。它是用go语言开发的,所以,你可能看到它的数据类型几乎和go语言一模一样的。

go语言作为网络新时代的语言有非常鲜明的特色,特别是在区块链中表现出色,以至于很多区块链项目都有go语言重构。以太坊中也以go语言为主流。如果对go语言比较熟悉,那么Solidity也就不会太陌生了。

Solidity语言也与JavaScript长得也像。其实你只要熟练掌握了一门编程语言,其它的就可以借鉴学习了,需要变换的只是一个外在的形式。

Solidity语言与众不同的是,它比较注重空间的利用,因为代码要发布到以太坊主网上,收费可是按字节来收的哦! 它的一些类型上又分成了很多种,以充分利用空间,比如整型,比如数组。

整型int

1
2
3
4
int8 8位整型
int256 256位整型
int = int256
uint8 8位无符号整型(正整数)

整型溢出问题

uint8最大值是255,最小值是0。超出最大值或小于最小值则会溢出。
解决举出用assert safeMath库。
assert(c >= a)

定长字节数组

bytes1 bytes2 … bytes32 1字节等于8位
byte = bytes1

可以像字符串一样使用,
像整型一样比较和运算
像数组一样索引

数据空间很金贵,一切都要精打细算的。一个字节能容纳的就绝不能两个字节! 这挺考验一个人的功力的。


This page is synchronized from the post: ‘Solidity语言类型 / 学习智能合约#2’

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×