# Solidity语言的小分享(1) **Published by:** [xc520](https://paragraph.com/@chengxxx/) **Published on:** 2022-07-19 **URL:** https://paragraph.com/@chengxxx/solidity-1 ## Content 大框架以及很多归纳内容来自: https://github.com/AmazingAng/WTFSolidity基础篇语言就是语法加词汇!和其他语言如中文一样,也是语法加词汇: 我 吃 饭 我 吃(很好吃的)饭 我(快速地)吃(很好吃的)饭一些写在最前面的话没啥意义第一个是版权啥的,第二个是兼容。// SPDX-License-Identifier: MIT pragma solidity ^0.8.4; 合约开始合约都在扩号内,每句加 ;。contract HelloWeb3{ ..bulabula..; ..bulabula..; } 语法大体会是:变量类型 + 地点 + 名称 + 内容 根据不同的变量类型,细节微调。 例子:hello worldstring(变量类型)public(地点)asd(名字)= "hello world"(内容); 变量类型数值类型(Value Type):简单来说就是不可变的,包括布尔型,整数型等等,这类变量赋值时候直接传递数值。函数类型(Function Type):Solidity文档里把函数归到数值类型,但我觉得他跟其他类型差别很大,所以单独分一类。引用类型(Reference Type):包括数组和结构体,这类变量占空间大,赋值时候直接传递地址(类似指针)。映射类型(Mapping Type): Solidity里的哈希表。变量语法数值语法:数值类型 + 地点 + 名称 + 内容 词汇如下: 布尔型(bool) 运算符:! (逻辑非)&& (逻辑与, "and" )|| (逻辑或, "or" )== (等于)!= (不等于)比较运算符: <=, <, ==, !=, >=, >真 bool(类型) public(地点) zhende(名字) = true; 假 bool private jiade = !zhende; 或 bool public zhenjia = zhende && jiade; 比大小 bool public _numberbool = _number2 > _number3; 整数 int 整数、uint 正整数、uint256 256位正整数 运算符: +, -, 一元运算 -, +, *, /, %(取余),**(幂)定义一个数字 uint256 public _number = 123; 加法 uint256 public _number1 = _number + 1; 幂 uint256 public _number2 = _number1**2; 余数 uint256 public _number3 = _number2 % 2; 地址 地址类型(address)存储一个 20 字节的值(以太坊地址的大小)。地址类型也有成员变量,并作为所有合约的基础。有普通的地址和可以转账ETH的地址(payable)。payable的地址拥有balance和tranfer()两个成员,方便查询ETH余额以及转账。地址 address public _address = 0x7A58c0Be72BE218B41C608b7Fe7C5bB630736C71; 让地址成为Payable类 address payable public _address1 = payable(_address); payable的地址类型可以查余额 uint256 public balance = _address1.balance; 字节 字节数组bytes分两种,一种定长(byte, bytes8, bytes32),另一种不定长。定长的属于数值类型,不定长的是引用类型(之后讲)。 定长bytes可以存一些数据,消耗gas比较少。固定长度的字节数组 bytes32 public _byte32 = "CoinEx"; bytes1 public _byte = _byte32[0]; CoinEx变量以字节的方式存储进变量_byte32 _byte变量存储_byte32的第一个字节 https://blog.51cto.com/u_15057858/4390670 ## Publication Information - [xc520](https://paragraph.com/@chengxxx/): Publication homepage - [All Posts](https://paragraph.com/@chengxxx/): More posts from this publication - [RSS Feed](https://api.paragraph.com/blogs/rss/@chengxxx): Subscribe to updates