// SPDX-License-Identifier: MIT
//这个是版本号的限制,如果加上就是代表所有0.8的都可以编译,不写就代表限定0.8
pragma solidity 0.8.17;
contract dataType{
//数据的类型
uint256 u \= 123;
int256 i \= -456;
uint256 ui \= 256;
uint8 public uu \= 123;
bool public b \= true;
string public s \= "hello world"; //字符串类型
address public a \= 0x1351355416545564;
bytes32 public bys \=0x564f64684548644684687864684684;
/**
负数用int 正整数uint
**/
}
这里数据比较严格,所以address和bytes类型是错误的,实际数据有差异,这里只是简单介绍
接下来,学习solidity的基础运算

// SPDX-License-Identifier: MIT
pragma solidity 0.8.17;
contract funAnd {
//学习基础的函数加减方法封装
//先来一个加法,要求不参与链上的操作,但是要能外部输入值
function add(uint x, uint y) external pure returns(uint){
return (x+y); //返回值就是x+y
}
//解析,先建立一个函数关键词function,接着给予函数名称add,然后给予两个无符号的整数,其中,
//external 是一个可外部调用的关键词,pure之前学过是一个不会参与链上操作的一个纯函数功能声明
//那么,拓展一下,如果有负号的运算应该如何呢?
//负数运算方法
function minus(int x, int y) external pure returns(int){
return (x+y); //返回值就是x+y
}
//解析,区别就是uint和int的数据区分
//再来一个减法运算
function sub(uint x, uint y) external pure returns(uint){
return (x-y); //返回值就是x+y
}
//扩展提问,如果我使用uint进行参数接受,返回int类型的数据可以吗?
//答案是不可以,只能返回同类型的数据格式,不然会报错
//TypeError: Return argument type uint256 is not implicitly
//convertible to expected type (type of first return variable) int256.
//防止计算为负数的示范 其中revert是php中的error信息反馈,有三种关键词,先了解这个最基础的
function sub2(uint x, uint y) external pure returns(uint){
if(x<y){
revert("x is less than y"); //如果x小于y,那么就抛出异常
}else{
return (x-y); //返回值就是x+y
}
}
}