字符串

字符串可以通过””或者’’。 例:”solidity” 或者 ‘solidity’

1
2
3
4
5
6
7
8
9
10
11
12
13
pragma solidity ^0.8.0;

contract Car {
string name;

constructor(string memory _name) public {
name=_name;
}

function getName() view public returns (string memory){
return name;
}
}

字符串还可以隐式地转换成 bytes1,……, bytes32。

1
bytes32 some = "solidity" 

字符串字面常量只能包含可打印的ASCII字符,这意味着他是介于 0x20 和 0x7E 之间的字符。

Unicode 字面常量

普通字符串文字只能包含ASCII,而Unicode可以包含任何有效的UTF-8序列。

1
string hi = unicode"hi,Solidity 😃";

十六进制字面常量

十六进制字面常量以关键字 hex 开始的,然后用单引号或双引号引起来的字符串。字符串的内容必须是一个十六进制的字符串。可以选择使用单个下划线作为字节边界分隔符

1
2
string memory x = hex"001122FF"
string memory x2 = hex'0011_22_FF'

多个十六进制字面常量被合并为一个字面常量
hex”00112233” hex”44556677” 等价于 hex”0011223344556677”