sed在某一行行首添加字符_Rust:文本类型(字符串)

本文介绍了Rust中的6种文本类型:character、string、raw string、byte literals、byte string literals和raw byte string literals,详细阐述了每种类型的特性和使用场景,包括类型转换、字符串操作方法及Unicode知识。
摘要由CSDN通过智能技术生成

7638b17532f79d0df010ba8f107de032.png

1、分类

Rust的文本类型主要包含6种:characterstringraw stringbytebyte stringraw byte string

1.1、character(rust类型为:char)

 CHAR_LITERAL :
    ' ( ~['  n r t] | QUOTE_ESCAPE | ASCII_ESCAPE | UNICODE_ESCAPE ) '
 ​
 QUOTE_ESCAPE :
    ' | "
 ​
 ASCII_ESCAPE :
       x OCT_DIGIT HEX_DIGIT
    | n | r | t |  | 0
 ​
 UNICODE_ESCAPE :
    u{
     ( HEX_DIGIT _* )1..6 }

以一对单引号包含的单个合法的Unicode characterUnicode字符?),可以包含单引号自身,但是此时要以斜杠转义,如下都是合法的character字符

 let s1 = 'H';
 let s2 = ''';
 let s3 = '"';
 let s4 = 'n';
 let s5 = 'x41'; // 与s6等价
 let s6 = 'A';
 let s7 = 'u{6211}';  //与s8等价
 let s8 = '我';

特别注意:char值的合法范围是 0x0000 ~ 0xD7FF 或者 0xE000 ~ 0x10FFFF,采用UTF-32编码,固定4个字节长度。

1.2、string(rust类型为:&str)

 STRING_LITERAL :
    " (
       ~["  IsolatedCR]
       | QUOTE_ESCAPE
       | ASCII_ESCAPE
       | UNICODE_ESCAPE
       | STRING_CONTINUE
    )* "
 ​
 STRING_CONTINUE :
     followed by n

以一对双引号包含的多个合法的Unicode characterUnicode字符?),可以包含双引号自身,但是此时要以斜杠转义,并允许使用""换行,此时下一行行首的所有空白字符会被自动去除,如下都是合法的string

 let s1 = "HHHH";
 let s2 = """;
 let s3 = "''";
 let s4 = "nnn";
 let s5 = "x41x41"; // 与s6等价
 let s6 = "AA";
 let s7 = "u{6211}u{6211}";  //与s8等价
 let s8 = "我我";
 ​
 let s9 = "hello"; // 与s10等价
 let s10 = "he
            llo";

1.3、raw string(rust类型为:&str)

 RAW_STRING_LITERAL :
    r RAW_STRING_CONTENT
 ​
 RAW_STRING_CONTENT :
       " ( ~ IsolatedCR )* (non-greedy) "
    | # RAW_STRING_CONTENT #

raw string不处理任意转移字符,以r开头,紧跟着0~n个#字符,中间是任何的Unicode character序列,然后以同样数量的 #结束,以下都是合法的raw sting

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值