Unicode 和 ASCII 符号
可以在 Raku 中使用以下 Unicode 符号,而无需加载任何其他模块。其中一些具有可以使用 ASCII 独有字符键入的等效物。这些变体通常由比 Unicode 版本更多的字符组成,因此它们看起来更大。
下面参考 unicode 码点的各种属性。最终列表可以在这里找到:https://www.unicode.org/Public/UCD/latest/ucd/PropList.txt.
字母字符
任何具有 Ll
(字母,小写),Lu
(字母,大写),Lt
(字母,标题),Lm
(字母,修饰符)或 Lo
(字母,其他)属性的代码点都可以像任何其他字母一样使用 ASCII 范围内的字符。
数字字符
任何具有 Nd
(数字,十进制数字)属性的代码点都可以用作任何数字的数字。例如:
my $var = 19; # U+FF11 U+FF19
say $var + 2; # OUTPUT: «21
»
数字值
任何具有 No
(Number,other)或 Nl
(Number,letter)属性的代码点都可以单独用作数值,例如 ½ 和 ⅓。 (这些不是十进制数字,因此不能组合。)例如:
my $var = ⅒ + 2 + Ⅻ; # here ⅒ is No and Rat and Ⅻ is Nl and Int
say $var; # OUTPUT: «14.1
»
空白字符
除了空格和制表符,您还可以使用具有 Zs
(分隔符,空格),Zl
(分隔符,行)或 Zp
(分隔符,段落)属性的任何其他 unicode 空白字符。
其它可接受的单代码点
此列表包含 Raku 中具有特殊含义的单个代码点及其 ASCII 等价物。
Symbol | Codepoint | ASCII | Remarks |
« | U+00AB | << | 作为 «» 或 .« 的一部分, 或正则表达式左单词边界 |
¯ | U+00AF | - | (必须使用显式的数字) 作为幂的一部分 (长音符号是减号的另一种写法) |
² | U+00B2 | 2 | 可以与 ⁰..⁹ 结合 |
³ | U+00B3 | 3 | 可以与 ⁰..⁹ 结合 |
¹ | U+00B9 | 1 | 可以与 ⁰..⁹ 结合 |
» | U+00BB | >> | 作为 «» 或 .« 的一部分, 或正则表达式右单词边界 |
× | U+00D7 | * | |
÷ | U+00F7 | / | |
π | U+03C0 | pi | 3.14159_26535_89793_238e0 |
τ | U+03C4 | tau | 6.28318_53071_79586_476e0 |
‘ | U+2018 | ‘ | 作为 ‘’ 或 ’‘ 的一部分 |
’ | U+2019 | ‘ | 作为 ‘’ 或 ‚’ 或 ’‘ 的一部分 |
‚ | U+201A | ‘ | 作为 ‚‘ 或 ‚’ 的一部分 |
“ | U+201C | “ | 作为 “” 或 ”“ 的一部分 |
” | U+201D | “ | 作为 “” 或 ”“ 或 ”” 的一部分 |
„ | U+201E | “ | 作为 „“ 或 „” 的一部分 |
… | U+2026 | … | |
⁰ | U+2070 | 0 | 可以与 ⁰..⁹ 结合 |
⁴ | U+2074 | 4 | 可以与 ⁰..⁹ 结合 |
⁵ | U+2075 | 5 | 可以与 ⁰..⁹ 结合 |
⁶ | U+2076 | 6 | 可以与 ⁰..⁹ 结合 |
⁷ | U+2077 | 7 | 可以与 ⁰..⁹ 结合 |
⁸ | U+2078 | 8 | 可以与 ⁰..⁹ 结合 |
⁹ | U+2079 | 9 | 可以与 ⁰..⁹ 结合 |
⁺ | U+207A | | | (必须使用显式的数字) 作为幂的一部分 |
⁻ | U+207B | - | (必须使用显式的数字) 作为幂的一部分 |
∅ | U+2205 | set() | (empty set) |
∈ | U+2208 | (elem) | |
∉ | U+2209 | !(elem) | |
∋ | U+220B | (cont) | |
∌ | U+220C | !(cont) | |
− | U+2212 | - | |
∖ | U+2216 | (-) | |
∘ | U+2218 | o | |
∞ | U+221E | Inf | |
∩ | U+2229 | (&) | |
∪ | U+222A | (|) | |
≅ | U+2245 | =~= | |
≠ | U+2260 | != | |
≤ | U+2264 | ⇐ | |
≥ | U+2265 | >= | |
⊂ | U+2282 | (<) | |
⊃ | U+2283 | (>) | |
⊄ | U+2284 | !(<) | |
⊅ | U+2285 | !(>) | |
⊆ | U+2286 | (⇐) | |
⊇ | U+2287 | (>=) | |
⊈ | U+2288 | !(⇐) | |
⊉ | U+2289 | !(>=) | |
⊍ | U+228D | (.) | |
⊎ | U+228E | (+) | |
⊖ | U+2296 | (^) | |
𝑒 | U+1D452 | e | 2.71828_18284_59045_235e0 |
「 | U+FF62 | Q// | 作为 「」 的一部分 (注意: Q// 变体不能裸用在正则表达式中) |
」 | U+FF63 | Q// | 作为 「」 的一部分 (注意: Q// 变体不能裸用在正则表达式中) |
原子运算符
原子运算符将 U+269B
⚛ ATOM SYMBOL 合并到其中。它们的 ASCII 等价物是普通的子程序,而不是运算符:
my atomicint $x = 42;
$x⚛++; # Unicode version
atomic-fetch-inc($x); # ASCII version
ASCII 替代方案如下:
Symbol | ASCII | Remarks |
atomic-assign | ||
atomic-fetch | this is the prefix:< | |
atomic-add-fetch | ||
atomic-sub-fetch | ||
atomic-sub-fetch | this operator uses U+2212 minus sign | |
++ | atomic-inc-fetch | |
atomic-fetch-inc | ||
— | atomic-dec-fetch | |
atomic-fetch-dec |
多代码点
此列表包含多个代码点运算符,这些运算符需要对其 ASCII 等价物项进行特殊组合。请注意,代码点以空格分隔显示,但在使用时应作为相邻代码点输入。
Symbol | Codepoints | ASCII | Since | Remarks |
»=» | U+00BB = U+00BB | >>[=]>> | v6.c | uses ASCII ‘=’ |
«=« | U+00AB = U+00AB | <<[=]<< | v6.c | uses ASCII ‘=’ |
«=» | U+00AB = U+00BB | <<[=]>> | v6.c | uses ASCII ‘=’ |
»=« | U+00BB = U+00AB | >>[=]<< | v6.c | uses ASCII ‘=’ |