帖子
分享您的知识。
不明白有哪些位置 (uint256)
我不明白 Location 和 newLocation 的 uint256 是什么,有人能向我解释一下,它们在哪里吗?谢谢. 以下是代码:
//spdx 许可证标识符:麻省理工学院
pragma solidity ^0.8.18;
从 “afoundryCourseChallenge.sol” 导入 {afoundryCourseChallenge}; 从 “3-lessonHelper.sol” 导入 {lessonThreeHelper};
contract lessonThree 是 FoundryCourseChallenge,lesson 错误 lessonThree__wronLocation ();
字符串私有常量 LESSON_IMAGE = “ipfs: //qmfwyprrx1sx7sfgrwr4pnmwtqvlxcp4fej39m2fpfye”;
构造函数(地址 fcn)afoundryCourseChallenge (fcn) { s_booleanArray = [假、假、假、真、假]; }
/*
- 调用这个函数!
- @param location-真实布尔值的位置.
- @param newLocation-为下一个人选择布尔值的位置!
- @param YourTwitterHandle-你的推特账号. 可以是空字符串. */ 函数 solveChallenge(uint256 位置,uint256 newLocation,字符串内存 yourTwitter Handle) if (s_booleanArray [位置]!= 真的){ 还原第三课__错误位置 (); } s_booleanArray [location] = false; s_booleanArray [newLocation] = 真; _updateAndrewardSolver(你的推特账号); }
/////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////以下是 NFT 所需的函数,请随意忽略. /////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////// 函数描述 () 外部纯覆盖返回(字符串内存){ 返回 “Cyfrin Foundry 完整课程:你从坚固中继承了技能!”; }
函数属性 () 外部纯覆盖返回(字符串内存){ 返回 “继承和工厂模式可知”; }
函数 specialImage () 外部纯覆盖返回(字符串内存){ 返回 LESSON_IMAGE; } }
- Smart Contract
- Solidity
答案
2如果不了解全部背景,很难从这个挑战的角度来解释.
说到代码,location
is an index of an item in s_booleanArray
array where the value is true
. If the value of an element by index location
is true
then solveChallenge
sets it to false
, and sets to true
an item by index newLocation
.
solveChallenge 函数中的 uint256 位置和 uint256 newLocation 参数表示数组 s_booleanArray 的索引.
s_booleanArray 是一个布尔值数组,初始化为 [false、false、false、true、false]. 这意味着真值位于数组的第 4 个索引处(考虑到数组索引从 0 开始). solveChallenge 函数采用两个参数 location 和 newLocation,表示数组 s_booleanArray 的索引. 位置参数应该是 s_booleanArray 中真实值的索引. 如果 s_booleanArray [location] 的值不为真,它将使用 revert lessonThree__WrongLocation 恢复交易. 如果 s_booleanArray [location] 为真,它将此索引设置为 false,将 newLocation 索引设置为 true. 这有效地将真实值移动到数组中的新位置. 最后,它调用 _updateAndrewardSolver(YourTwitterHandle);来更新求解者的状态并奖励他们. 因此,如果你想解决这个难题,你需要提供真实值的当前位置(根据数组初始化,从索引 3 开始),以及你想要将真实值移动到的新位置.
这就是我从你提供的信息中能看出来的全部.
你知道答案吗?
请登录并分享。
Solidity is an object-oriented, high-level language for implementing smart contracts. It is a curly-bracket language designed to target the Ethereum Virtual Machine (EVM).