当前位置: 首页 > news >正文

solidity学习

变量:

// SPDX-License-Identifier: MIT pragma solidity ^0.8.20; contract HelloWorld{ bool boolVar = true; bool boolVar2 = false; uint256 uintVAR = 256; int256 intVAR = -256; bytes32 bytes8Var = "Hellffffffffffffffffffffffffofff"; string stringVar = "Hello Worldeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"; address addVar = 0x5B38Da6a701c568545dCfcB03FcB875f56beddC4; }

函数

public private Internal External

存储模式:

storage : 永久形存储(合约中的变量默认为storage)

暂时形存储

memory:可以修改

calldata:不可修改

函数、结构体、数组、映射

// SPDX-License-Identifier: MIT pragma solidity ^0.8.20; // struct: 结构体 // array: 数组 // mapping: 映射 contract HelloWorld{ string stringVar = unicode"去你妈的深圳"; // 中文需要前面加 unicode Solidity 默认只支持 ASCII 字符, struct Info{ string phrase; uint id; address addr; } Info[] infos; mapping (uint => Info) infoMapping; function sayHello(uint _id) public view returns (string memory ){ if(infoMapping[_id].addr == address(0x0)){ return addinfo(stringVar); }else { return addinfo(infoMapping[_id].phrase); } // for (uint i =0; i<infos.length; i++){ // if(infos[i].id == _id){ // return addinfo(infos[i].phrase); // } // } // return addinfo(stringVar); } function setHelloWorld(string memory newString, uint _id) public { // uint 为基础数据类型 不用加memory // stringVar = newString; Info memory info = Info(newString,_id,msg.sender); // infos.push(info); infoMapping[_id] = info; } function addinfo(string memory helloWorldStr) internal pure returns (string memory ){ return string.concat(helloWorldStr, "from Frank's contract"); } }

合约工厂操作合约

// SPDX-License-Identifier: MIT pragma solidity ^0.8.20; import { HelloWorld } from "./test.sol"; // 1、直接引入一个文件系统下的合约 // 2、引入github上的合约 // 3、通过包引入第三方的包 contract HelloWorldFactory{ HelloWorld hw; HelloWorld[] hws; function creatHelloWorld() public { hw = new HelloWorld(); hws.push(hw); } function getHelloWorldByIndex(uint _index) public view returns (HelloWorld) { return hws[_index]; } function callSayHelloFromFactory(uint _index, uint _id) public view returns(string memory){ return hws[_index].sayHello(_id); } function callSetHelloWorldFromFactory(uint _index,string memory newString, uint _id)public { hws[_index].setHelloWorld(newString,_id); } }
http://www.jsqmd.com/news/710023/

相关文章:

  • RAG-Anything横空出世!文字、图片、表格、公式,文档里的“一切”都能搜!
  • 华硕笔记本终极轻量化控制神器:G-Helper完整指南
  • 2026年3月做得好的工业厂房搭建公司推荐,专业通风设计,厂房空气清新宜人 - 品牌推荐师
  • 2026年宁波韩国留学机构哪家值得推荐:五家优选指南 - 科技焦点
  • 保姆级教程:用杰理AC696X的ADC和FFT,给你的小项目加个‘声音频谱可视化’功能
  • EuroBERT多语言模型架构与优化实践
  • FanControl终极指南:5分钟让Windows风扇控制变得简单智能
  • Rust高性能网络抓包框架karasu:从零构建安全高效的流量分析工具
  • 单色过渡色还原 PNG:从白底结果反推透明通道
  • 2026工业窑炉厂家推荐:性价比高+长期运行成本更低,享设计到安装全流程服务 - 品牌种草官
  • 2026年新加坡留学服务口碑好的机构:五家优选深度解析 - 科技焦点
  • 深度学习驱动的参数化CAD曲面生成技术解析
  • 3步实战:将Amlogic电视盒子改造为高性能Armbian服务器
  • 华硕笔记本的“瘦身“秘籍:3分钟让G-Helper成为你的性能管家
  • 2026 最新日语网课机构推荐|高性价比日语机构排名 - 资讯焦点
  • Agent+MCP+Skills 重构自动化测试:从脚本生成到测试闭环
  • 国内专业防抛网厂家综合实力排行及核心优势解析 - 资讯焦点
  • 2026年宁波韩国留学机构哪家口碑好:五家优选评测 - 科技焦点
  • 树莓派4B双WIFI配置实战:告别手动切换,让设备自动连接信号更好的网络
  • 2026年3月性价比高的宁夏品牌碗蒸羊羔肉餐馆口碑推荐,精美凉菜/黄牛肉炒糊饽/宁夏清真菜,宁夏品牌碗蒸羊羔肉门店推荐 - 品牌推荐师
  • day15-Trae实现换脸微信小程序02
  • 华硕笔记本性能优化完全指南:G-Helper开源控制工具实用教程
  • 突破限制:如何为Android Auto安装第三方应用
  • 2026年3月恒温恒湿车间改造推荐,恒温恒湿车间/净化车间/无尘室/车间净化/净化工程/洁净室,恒温恒湿车间厂商哪家好 - 品牌推荐师
  • 告别内存焦虑:用VastGaussian的渐进式分块策略搞定超大场景3D重建(附保姆级配置流程)
  • 2026年新加坡留学机构哪个比较好:五家优选深度解析 - 科技焦点
  • 别再死记硬背命令了!AutoCAD 2020图层、捕捉、约束三大辅助工具实战指南(附机械零件图案例)
  • 2026 必看!学日语机构推荐|靠谱日语网课精选 - 资讯焦点
  • Excel中xlPicture对应的就是 ‌增强型图元文件EMF格式
  • 概念引导微调(CFT)技术解析与工程实践