Swift言語の識別子についての覚え書き
識別子は A から Z の大文字または小文字、アンダースコア( _
)、ユニコード基本多言語面(Basic Multilingual Plane, BMP)にある非複合アルファニューメリック文字、私用領域(Private Use Area)以外にある基本他言語面外の文字で始まる。最初の文字の後ろは、数字と複合ユニコード文字も使える。
予約語を識別子として使いたい場合は、バッククウォート(`)で前後を挟む。例えば、class
は有効な識別子ではないが、`class`
は有効な識別子である。バッククウォート自身は識別子の一部とはみなされない。`x`
とx
は同じ意味である。
明示的な引数名のないクロージャの中においては、引数は暗黙に $0, $1, $2, ...
と命名される。これらの名前はクロージャのスコープ内において有効な識別子である。
まとめ
identifier → identifier-head identifier-charactersopt
identifier → `identifier-head identifier-charactersopt`
identifier → implicit-parameter-name
identifier-list → identifier | identifier , identifier-list
identifier-head → A から Z の大文字または小文字
identifier-head → _
identifier-head → U+00A8, U+00AA, U+00AD, U+00AF
identifier-head → U+00B2-U+00B5, U+00B7-U+00BA, U+00BC-U+00BE
identifier-head → U+00C0-U+00D6, U+00D8-U+00F6, U+00F8-U+00FF
identifier-head → U+0100-U+02FF
identifier-head → U+0370-U+167F
identifier-head → U+1681-U+180D, U+180F-U+1DBF
identifier-head → U+1E00-u+1FFF
identifier-head → U+200B-U+200D, U+202A-U+202E
identifier-head → U+203F-U+2040, U+2054
identifier-head → U+2060-U+206F
identifier-head → U+2070-U+20CF, U+2100-U+218F
identifier-head → U+2460-U+24FF, U+2776-U+2793
identifier-head → U+2C00-U+2DFF, U+2E80-U+2FFF
identifier-head → U+3004-U+3007, U+3021-U+302F, U+3031-U+303F
identifier-head → U+3040-U+D7FF
identifier-head → U+F900-U+FD3D, U+FD40-U+FDCF
identifier-head → U+FDF0-U+FE1F, U+FE30-U+FE44
identifier-head → U+FE47-F+FFFD
identifier-head → U+10000-U+1FFFD
identifier-head → U+20000-U+2FFFD
identifier-head → U+30000-U+3FFFD
identifier-head → U+40000-U+4FFFD
identifier-head → U+50000-U+5FFFD
identifier-head → U+60000-U+6FFFD
identifier-head → U+70000-U+7FFFD
identifier-head → U+80000-U+7FFFD
identifier-head → U+90000-U+9FFFD
identifier-head → U+A0000-U+AFFFD
identifier-head → U+B0000-U+BFFFD
identifier-head → U+C0000-U+CFFFD
identifier-head → U+D0000-U+DFFFD
identifier-head → U+E0000-U+EFFFD
identifier-character → 数字の 0 から 9
identifier-character → U+0300-U+036F
identifier-character → U+1DC0-U+1DFF
identifier-character → U+20D0-U+20FF
identifier-character → U+FE20-U+FE2F
identifier-character → identifier-head
identifier-characters → identifier-character identifier-charactersopt
implicit-parameter-name →$
10進数
注) 実際の文字は Unicode一覧 0000-0FFF などを参照のこと。U+0000-U+00FF についてのみ以下に表示する。
どこでも使える文字 |
2文字目以降で使える文字 |
使えない文字 |
U+ | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F |
0000 | NUL | SOH | STX | ETX | EOT | ENQ | ACK | BEL | BS | HT | LF | VT | FF | CR | SO | SI |
0010 | DLE | DC1 | DC2 | DC3 | DC4 | NAK | SYN | ETB | CAN | EM | SUB | ESC | FS | GS | RS | US |
0020 | (空白) | ! | " | # | $ | % | & | ' | ( | ) | * | + | , | - | . | / |
0030 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | : | ; | < | = | > | ? |
0040 | @ | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O |
0050 | P | Q | R | S | T | U | V | W | X | Y | Z | [ | \ | ] | ^ | _ |
0060 | ` | a | b | c | d | e | f | g | h | i | j | k | l | m | n | o |
0070 | p | q | r | s | t | u | v | w | x | y | z | { | | | } | ~ | DEL |
0080 | PAD | HOP | BPH | NBH | IND | NEL | SSA | ESA | HTS | HTJ | VTS | PLD | PLU | RI | SS2 | SS3 |
0090 | DCS | PU1 | PU2 | STS | CCH | MW | SPA | EPA | SOS | SGCI | SCI | CSI | ST | OSC | PM | APC |
00A0 | NBSP | ¡ | ¢ | £ | ¤ | \ | ¦ | § | ¨ | © | ª | « | ¬ | SHY | ® | ¯ |
00B0 | ° | ± | ² | ³ | ´ | µ | ¶ | · | ¸ | ¹ | º | » | ¼ | ½ | ¾ | ¿ |
00C0 | À | Á | Â | Ã | Ä | Å | Æ | Ç | È | É | Ê | Ë | Ì | Í | Î | Ï |
00D0 | Ð | Ñ | Ò | Ó | Ô | Õ | Ö | × | Ø | Ù | Ú | Û | Ü | Ý | Þ | ß |
00E0 | à | á | â | ã | ä | å | æ | ç | è | é | ê | ë | ì | í | î | ï |
00F0 | ð | ñ | ò | ó | ô | õ | ö | ÷ | ø | ù | ú | û | ü | ý | þ | ÿ |
ひらがな、カタカナは U+3040〜30FF あたりだし、漢字とかも使えるから、識別子に日本語名を付けるというのも可能だけど、どうなんだろうなー。使うかな? 日本人は結局、先頭文字はアルファベットかアンダースコアで、2文字目以降はそれに加えて数字も使えるということでいいんじゃないの?という気がする…