E4064#
字符或字符串字面量中包含不合法的转义序列。
错误示例#
使用包含非法 Unicode 码位的转义序列会导致此错误:
///|
test {
println('\uD800')
}
另一种情况是在 Byte 字面量中使用不支持的转义序列:
///|
test {
let _ : Byte = b'\uD000'
}
在 Byte 字面量中,只能使用 \x 和 \o 形式的转义序列。
修改建议#
对 Char 和 String 字面量使用合法的 Unicode 码位。对 Byte 字面量,请使用 \x 或 \o 这样的字节转义序列:
///|
test {
let char : Char = '\u{1F600}'
let byte : Byte = b'\x41'
ignore(char)
inspect(byte.to_int(), content="65")
}