TypeAnnotation(型注釈)を使って効率的・確実なプログラミング

Robloxの開発言語はLuaですが、精確にはLua5.1を拡張したLuauです。

LuauではLuaから高速化がされているとともに、様々な機能拡張もあります。

Luauの拡張機能は、使っていったほうがいいものばかりですが、特におすすめ、知っておいたほうがいい、と思うのが、今回紹介する

TypeAnnotation(型注釈)

です。

型を明示することで、コード上ではその型情報がのった状態でコーディングできるので、主に補間が効いたり、間違った使い方をする防止ができたりします。

どういう効果か、実際にコーディングを見たほうがわかりやすいと思うので以下。

まずは、TypeAnnotation無しでのコーディング。

 

関数なので、otherPartには、ツリーから得られる型の情報がなく、補間なども効かず全てを手打ちしています。

 

 

続いてがTypeAnnotationあり版。

引数にTypeAnnotationすることで、otherPartがBasePart型と定まり、Parentの補間が効いています。

さらにParentがInstanceとして捉えられ、Parentの関数の補間も効いています。

FindFirstChildなどを毎回ミスなく手打ちするのは難しかったりしないでしょうか。

さらにこちらでは、`FindFirstChild` ではなく、`FindFirstChildWhichIsA` を使うことで、戻り値の型が明示的になり、Humanoid型としての扱いも自動的にできるようになっています。

 

このように、型が明示されると

  • 補間が効いてタイプ数が減らせる
  • タイプミスが減らせる
  • 変数の間違った使い方(ないプロパティを使ってしまうなど)を防げる

といったメリットがあります。

ツールボックスなどから追加されるScriptなど、古いものも多いからか型注釈が入ってるケースはほぼみないので、それが当たり前と思わずに有効な機能は使っていきましょう。

単純にタイプ数減らす以上に、エラーの少ないコーディングを実現するのに有効ですのでぜひとも活用してみてください。

たんじ

Robloxのゲーム作ったり、プログラミ

Robloxアカウント:

https://www.roblox.com/users/4160744473/profile

回答

たんじ
2023年 06⽉ 30⽇

Robloxの開発言語はLuaですが、精確にはLua5.1を拡張したLuauです。

LuauではLuaから高速化がされているとともに、様々な機能拡張もあります。

Luauの拡張機能は、使っていったほうがいいものばかりですが、特におすすめ、知っておいたほうがいい、と思うのが、今回紹介する

TypeAnnotation(型注釈)

です。

型を明示することで、コード上ではその型情報がのった状態でコーディングできるので、主に補間が効いたり、間違った使い方をする防止ができたりします。

どういう効果か、実際にコーディングを見たほうがわかりやすいと思うので以下。

まずは、TypeAnnotation無しでのコーディング。

 

関数なので、otherPartには、ツリーから得られる型の情報がなく、補間なども効かず全てを手打ちしています。

 

 

続いてがTypeAnnotationあり版。

引数にTypeAnnotationすることで、otherPartがBasePart型と定まり、Parentの補間が効いています。

さらにParentがInstanceとして捉えられ、Parentの関数の補間も効いています。

FindFirstChildなどを毎回ミスなく手打ちするのは難しかったりしないでしょうか。

さらにこちらでは、`FindFirstChild` ではなく、`FindFirstChildWhichIsA` を使うことで、戻り値の型が明示的になり、Humanoid型としての扱いも自動的にできるようになっています。

 

このように、型が明示されると

  • 補間が効いてタイプ数が減らせる
  • タイプミスが減らせる
  • 変数の間違った使い方(ないプロパティを使ってしまうなど)を防げる

といったメリットがあります。

ツールボックスなどから追加されるScriptなど、古いものも多いからか型注釈が入ってるケースはほぼみないので、それが当たり前と思わずに有効な機能は使っていきましょう。

単純にタイプ数減らす以上に、エラーの少ないコーディングを実現するのに有効ですのでぜひとも活用してみてください。

hiko
2023年 07⽉ 02⽇

めちゃくちゃ勉強になります!

  • トピックに返信するにはログインしてください
2023年 06⽉ 30⽇
キャンセル

        

この機能を利⽤するには
ログインする必要があります。