引用类型
数组切片
数组切片是对数组中连续部分的一种视图。它的语法为 x[start:end],其中 start 和 end 是表达式,结果类型为 uint256(或者可以隐式转换为 uint256)。切片的第一个元素是 x[start],最后一个元素是 x[end - 1]。
-
如果 start 大于 end,或者 end 超过数组的长度,会抛出异常。
-
start 和 end 都是可选的:start 默认为 0,end 默认为数组的长度。
数组切片本身没有成员。它们可以隐式地转换为其底层类型的数组,并支持索引访问。索引访问相对于切片的起始位置,而不是底层数组的绝对位置。
注意: 目前,数组切片仅在 calldata 类型的数组上可用。数组切片在 ABI 解码函数参数时非常有用,特别是在处理来自外部调用的数据时:
// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.8.5 <0.9.0;
contract Proxy {
/// @dev 代理管理的客户端合约地址
address client;
constructor(address client_) {
client = client_;
}
/// 在对地址参数进行基本验证后