我有一个方法试图将 [u8] 的切片与多个字节字符串文字匹配:
pub(crate) fn from_slice(slice: &[u8]) -> Option<SqlStateCode> {
match slice {
b"3030303030" => Some(SqlStateCode::SuccessfulCompletion),
b"3031303030" => Some(SqlStateCode::Warning),
b"3031303043" => Some(SqlStateCode::DynamicResultSetsReturned),
_=> None
}
}
Run Code Online (Sandbox Code Playgroud)
除了它不会工作,除非我用数组替换字节字符串文字:
[30, 31, 30, 30, 43] => Some(SqlStateCode::DynamicResultSetsReturned)
Run Code Online (Sandbox Code Playgroud)
有没有办法使这个工作与文字?
您的字节字符串文字不正确;字节字符串文字b"3031303043"不对应于 slice[30, 31, 30, 30, 43]而是对应于slice [51, 48, 51, 49, 51, 48, 51, 48, 52, 51]。
这是因为文字中的每个字符都被切片中的 ASCII 值替换。
[30, 31, 30, 30, 43]用于控制字符的十六进制转义序列的相应字节字符串文字将是b"\x1E\x1F\x1E\x1E+".
| 归档时间: |
|
| 查看次数: |
56 次 |
| 最近记录: |