識別子は、変数と定数に付ける名前です。コンパイラはそれを一連のルールに照らしてチェックします。名前が不正な場合、コードは直接エラーを報告します。
名前に使用できる項目は、英文字、数字、アンダースコアの 4 つだけです。 _ドル記号 $。
数字で始めることはできません。1SHOP_SIGN いいえ、SHOP_SIGN できる。
大文字と小文字は 2 つの名前です。milkTea そして MilkTea 同じ識別子ではないため、ここで混同されやすいです。
キーワードを名前として使用することはできません。let、const、string これらの単語は、コンパイラ自身が使用するために予約されています。
アニメーション動画は「11. ArkTSの識別子とキーワード|命名ルールの詳細解説」にあります。
キーワード
キーワードは、ArkTS が事前に予約した単語であり、特別な文法的意味を持ちます。これらはコンパイラによって認識され、特定の機能を実行するために使用されますが、識別子として使用することはできません。
型名も入ります。string コロン以降に記述される文字列型のため、変数名としては使用できません。number、boolean 同じことは機能しません。
| キーワード | 効果 | キーワード | 効果 |
|---|---|---|---|
abstract |
抽象クラス修飾子 | as |
型キャスト |
async |
非同期関数の宣言 | await |
非同期タスクの実行が完了するまで待ちます |
break |
ループから抜け出すか分岐を切り替える | case |
switch ステートメントの分岐 |
class |
クラスの定義 | const |
読み取り専用定数を宣言する |
constructor |
クラスコンストラクター | continue |
このサイクルをスキップして次のラウンドに進みます |
do |
do-while ループの始まり | else |
条件分岐、それ以外の場合 |
enum |
列挙型の定義 | export |
モジュールメンバーのエクスポート |
extends |
クラスの継承 | false |
ブール値の false 値 |
final |
クラスの継承は禁止されており、変数は 2 回変更できません。 | for |
for ループ |
function |
関数を定義する | if |
条件判断 |
implements |
インターフェースを実装する | import |
モジュールメンバーをインポートする |
interface |
インターフェースの定義 | internal |
モジュール内アクセス権 |
let |
可変変数を宣言する | native |
ネイティブ C/C++ コードを呼び出す |
new |
オブジェクトをインスタンス化する | null |
NULL値 |
override |
親クラスのメソッドをオーバーライドする | package |
パッケージ名の定義 |
private |
プライベートアクセス | protected |
保護されたアクセス |
public |
パブリックアクセス | return |
関数は結果を返します |
static |
静的メンバー修飾子 | super |
親クラスのコンストラクターとメソッドを呼び出す |
switch |
複数分岐の条件文 | this |
現在のインスタンスオブジェクトを参照します |
throw |
積極的に例外をスローする | true |
ブール値の真実 |
try |
例外をキャッチするコードブロック | while |
while ループ |
undefined |
未定義の値 |
型名
これらは基本的なタイプであり、名前を付けることはできません。
| 型名 | 効果 | 型名 | 効果 |
|---|---|---|---|
boolean |
ブール型 | number |
数値型 |
string |
文字列型 | void |
戻り値の型がありません |
bigint |
大きな整数型 | byte |
バイト整数型 |
short |
短整数型 | int |
整数型 |
long |
長整数型 | float |
単精度浮動小数点型 |
double |
倍精度浮動小数点型 | char |
単一文字タイプ |
object |
オブジェクトの種類 |
これらも名前として使用できません。
| キーワード | 効果 | キーワード | 効果 |
|---|---|---|---|
catch |
例外をキャッチする | declare |
外部型を宣言する |
finally |
例外終了コードブロック | from |
インポートされたモジュールのソース |
get |
プロパティリーダー | in |
トラバースオブジェクトのプロパティ |
instanceof |
オブジェクトの種類を決定する | namespace |
名前空間 |
of |
配列要素を反復処理する | out |
出力パラメータマーカー |
readonly |
読み取り専用属性 | set |
不動産ライター |
type |
カスタムタイプのエイリアス | typeof |
変数の型を取得する |
名前を選択するときは、上記の単語を避けてください。特定の単語が後で授業で使用され、それが何を意味するのかを見てみましょう。
このコードの何が問題なのか
相変わらずミルクティー屋さんからの注文です。次のコードはコンパイルに合格できません。そこには 5 つの命名に関する問題があります。
/*------------------------------ 标识符命名规则 -------------------------------*/ // 奶茶店招牌 const 1SHOP_SIGN: string = '甜蜜奶茶屋'; // SHOP_SIGN = '快乐奶茶铺'; // 杯型 let cup-size: string = '大杯'; // 奶茶名称 let let: string = '珍珠奶茶'; // 价格(单位:元) let string: number = 15; let milkTea: string = '红豆奶茶'; let MilkTea: string = '烧仙草奶茶';
まず第一位は、const 1SHOP_SIGN。識別子を数字で始めることはできません。に変更します SHOP_SIGN。括弧内の店名はそのまま「スイートミルクティーハウス」です。

2位は、let cup-size。マイナス記号は使用できる文字ではありません。識別子には文字、数字、アンダースコアのみを使用できます。 $。に変更します cup_size。
3位は、let let。let はキーワードであるため、識別子として使用することはできません。ミルクティーの名前を に変更します drinkName。
4位は、let string。string これは基本タイプの予約語であり、名前付けには使用できません。価格がに変更されました price。
最後の 2 行は、milkTea そして MilkTea。質問: これは同じ変数ですか?いいえ。 ArkTS では大文字と小文字が厳密に区別され、これらは 2 つの独立した変数です。小豆ミルクティーに変わりました redBeanMilkTea少仙草ミルクティーをに変更 grassJellyMilkTea。

編集後にもう一度読んでみてください
5 か所が変更されており、コードは次のとおりです。
/*------------------------------ 标识符命名规则 -------------------------------*/ // 奶茶店招牌 const SHOP_SIGN: string = '甜蜜奶茶屋'; // SHOP_SIGN = '快乐奶茶铺'; // 杯型 let cup_size: string = '大杯'; // 奶茶名称 let drinkName: string = '珍珠奶茶'; // 价格(单位:元) let price: number = 15; // 红豆奶茶 let redBeanMilkTea: string = '红豆奶茶'; // 烧仙草奶茶 let grassJellyMilkTea: string = '烧仙草奶茶';
先頭の数字が削除され、マイナス記号がアンダースコアに置き換えられます。let そして string それをコンパイラに返します。小豆と焦げ草ゼリーにはそれぞれ独自の名前が付けられており、大文字と小文字で区別する必要はなくなりました。