注意:string 后面必须加上memory,否则会直接报错,0.4版本可以不加
pragma solidity ^0.5.1; contract a1 { string _name; constructor (string memory name) public { _name = name; } function f() public { setName(_name); } //memory是值传递,不会改变原来的值。 //这里引用类型也可以换成storage。当使用storage时方法必须是private或internal function setName(string storage name) private{ bytes(name)[0] = 'x'; } function name() public view returns(string memory){ return _name; } }