constructor()
构造函数---合约部署时自动调用一次,用于初始化状态变量的值
public
使修饰的函数公开 为公共可调用的函数 与其对立的有 internal关键字
internal
使函数只能合约内部访问
函数结构
function 函数名(参数) public等 {
函数体、返回值
}
function getNumber() public view returns(uint) {
return number;
返回值可以有多个
function getNumber() public view returns(uint,uint) {
return (number,10);
returns后面的数量要和return后括号内的参数数量一致,否则会报错
view
修饰的函数不会修改状态变量(不消耗gas)
view 关键字 使函数 可读可浏览 但无法修改
获取调用合约函数的外部账户地址msg.sender
function getSenderAddress() public view returns(address) {
return msg.sender;
}
pragma solidity ^ 0.4.25;
contract GlobalVariable{
//定义变量
uint number;//未赋值时值为0
address owner;//部署合约的账户地址
//构造函数---合约部署时自动调用一次,用于初始化状态变量的值
constructor() public {
number = 20;
}
//定义函数(修改状态变量 不需要返回值)
function setNumber(uint _num) public {
number = _num;
}
//_num可以专门用下划线开头作变量名 区分外部自定变量和函数内变量
//public使函数可被外界访问 --- internal 使函数只能合约内部访问
//view 修饰的函数不会修改状态变量(不消耗gas)
//view 关键字 使函数 可读可浏览 但无法修改
//returns 返回关键字 s指可以返回多个
// function getNumber() public view returns(uint) {
// return number;
function getNumber() public view returns(uint,uint) {
return (number,10);//函数返回值 (有多个返回值用括号和逗号隔开)
//这里如果只在returns(uint,uint)中俩个参数 会报错如下
//Different number of arguments in return statement than in returnsdeclaration.声明个数和返回数量不一致
}
//获取调用合约函数的外部账户地址
function getSenderAddress() public view returns(address) {
return msg.sender;
}
}