flutter字符串字面量
1,r'字符串'
在字符串 前加‘r’实现创建原始字符串,不会被转义,直接输出原始定义的字符串,个人理解就是\转义字符,不用作转义,即等价于\
2,'''字符串'''
3, encodeFull
不会被编码: !*'();:@&=+$,/? (和ios相同)
会编码:%[] (和ios相同)
不会被编码: # (这个#和ios不同: ios的urlencode方法#会被编码)
测试代码如下:
printstr(String string) {
print(string);
}
void main() {
//printstr('[\d\/\.,-\s]+""''); //报错
printstr('[\d\/\.,-\s]+""'); // [d/.,-s]+""
printstr(r'[\d\/\.,-\s]+""'); // [\d\/\.,-\s]+""
printstr('[\\d\\/\\.,-\\s]+""'); //[\d\/\.,-\s]+""
//printstr('\'); //报错
printstr(r'\'); //输出 \
printstr("ab'''cndefg'''1" "231312");
//报错
// printstr(r'{
// "a": {
// "asd": "12"
// },
// "b": [
// "12",
// "23"
// ],
// "json": "123",
// "url": "http://ssf.com?sdfp==12"
// }');
//```定义字符串,里面的内容,不需要转json stringify转换```
String c = '''{
"a": {"asd": "12"},
"b": ["12", "23"],
"json": "123",
"url": "http://ssf.com?sdfp==12"
}''';
printstr(c);
//map字面量
var mapObj = {
"a": {"asd": "12"},
"b": ["12", "23"],
"json": "123",
"url": "http://ssf.com?sdfp==12"
};
print(mapObj);
printstr(Uri.encodeFull(c));
printstr(Uri.encodeFull('!*\'\(\);:@&=+\$,/?')); //!*'();:@&=+$,/?
printstr(Uri.encodeFull('%#[]')); //%25#%5B%5D
printstr(Uri.encodeFull('/?')); ///?
}
网友评论