Solidity-001-你好,世界

114 阅读1分钟

背景

通过学习Solidity,然后输出文章检验自己的学习成果github仓库

基础知识

任何一个程序教学,开头都会教你如何写Hello World,我也不例外

例子

该例子是在链上存储"Hello World!"的字符串

例子

// SPDX-License-Identifier: MIT  
pragma solidity ^0.8.20;  
  
contract HelloWorld {  
    string public greet = "Hello World!";  
}  

程序解析

// SPDX-License-Identifier: MIT  
  • 如果不加此行,编译的时候,编译器会警告,但程序可以编译成功
  • 如果你不想指定一个许可证,或者源代码不开源,请使用特殊值UNLICENSED
  • 注意,UNLICENSED(不存在于SPDX许可证列表中)与UNLICENSE(授予所有人所有权利)不同
  • 每个源文件都应该注释最上面一行,以说明版权许可证
  • 版权注释在文件的任何位置都可以被编译器识别,但建议把它放在文件的顶部
  • 编译器不会验证许可证是否属于SPDX版权许可列表,但它会在bytecode metadata中包含提供的字符串
pragma solidity ^0.8.20;  
  • pragma用于声明允许使用低于0.8.20版本并且不高于0.9.0的编译器版本编译,^表示高于
contract HelloWorld  
  • contract声明了一个合约名字,名字叫HelloWorld
string public greet = "Hello World!";  
  • 声明了一个string变量,并且可见性是public
  • Solidity中所有的标识符(合约名称,函数名称和变量名称),都只能使用ASCII字符集