智能合约-语法基础2

本文介绍了Solidity编程语言的关键概念,包括合约的创建、变量声明(如uint、int、bool、string、address等)、函数定义(如view、pure、payable修饰符)以及地址类型的使用。示例展示了如何声明和调用智能合约方法,以及如何通过映射获取账户余额。此外,还探讨了address类型的特性,包括长度和类型转换。
摘要由CSDN通过智能技术生成

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

1、合约的一些重要关键字:

solidity public 公有,任何人(拥有以太坊账户的)都可以调用 private 私有, 只有智能合约内部可以调用 external 仅合约外部可以调用,合约内部需使用this调用 internal 仅合约内部和继承的合约可以调用 view/constant 函数会读取但是不会修改任何contract的状态变量 pure(纯净的) 函数不使用任何智能合约的状态变量 payable 调用函数需要付钱,钱付给了智能合约的账户 returns 返回值函数声明中使用 //含s 2、先创建一个合约

```solidity // SPDX-License-Identifier: GPL-3.0

pragma solidity ^0.8.0;

contract SimpleStorage {
//这样我们就创建了一个名为SimpleStorage的空合约

}

``` 3、我们可以在这个合约里声明一些变量。

```solidity // SPDX-License-Identifier: GPL-3.0

pragma solidity ^0.8.0;

contract SimpleStorage {
uint a ; //声明一个无符号整型 a 默认为uint256 int b ; //声明一个无符号整型 b 默认为int256 bool c ; //声明一个bool类型 string d ; //声明一个字符串类型 address f ; //声明一个地址,通过地址校验和测试的十六进制字面常量 ixed g ; // 定长浮点型,有的符号的固定位浮点数 uixed h ;//定长浮点型,无符号固定位浮点数 enum weekday{sun,mon,tue,wed,the,fri,sat}; //枚举

} ``` 3、我们再声明一个方法

```solidity // SPDX-License-Identifier: GPL-3.0

pragma solidity ^0.8.0;

contract SimpleStorage {
address f ;

function getBalance(address people) public view returns (uint){ return address(people).balance; //获取余额 }

}

```

4、再来一个映射

```solidity // SPDX-License-Identifier: GPL-3.0

pragma solidity ^0.8.0;

contract SimpleStorage {
address f ;

mapping (uint => address) public addressData;

function getBalance(address people ,unit b) public view returns (uint){ people=addressData[b] return address(people).balance; //获取余额 }

}

```

5、可以讲讲solidity的专属变量address

`` 以太坊中的地址的长度为20字节一字节等于8位,一共160位,所以address其实亦可以用uint160`来声明。

类型转换:address payable可以隐式转换为简单的address类型,这表示你可以将address payable分配给address类型,而无需显式转换。

```

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值