Optional / Maybe型は動的言語で役立ちますか?


14

Optional静的に型付けされた言語では明らかな方法で有用ですが、動的言語でも有用かどうか疑問に思っています。通常、あなたに言って何のコンパイラは「ねえ、あなたはこれを使用し、ありませんOptional<String>Stringあなたはまだ実行時にミスを発見する必要がありますので、」。私は静的な型付けの背景を持っており、私の観点からOptionalは、動的言語の型の利点を見ることができません。

回答:


13

その弱点は、動的言語のすべてのタイプの場合とまったく違いはありません。実行して、内容を確認する必要があります。その点でオプションは実際に違いはありません。

オプションは、値が存在する場合と存在しない場合がある静的な注釈以上のものです。それらには、関連する操作もあります。オプションのマッピングされた操作のチェーンは、チェーン内のすべてのステップの後で障害をチェックする必要がないようにする非常に便利な機能の1つです。

すぐに値を取得しただけでも、プログラマがNothing最初に実行されて失敗したかどうかを確認する必要があります。オプションがなければ、そのプロディングはnull、最初に実行したときに含まれている場合にのみ発生します。多くのヌルポインター逆参照は、製品がフィールドに登場するまで頑固に待機しています。


0

Objective-Cについて話すことができます。

動的型付き言語は遅れてバインドするため、「オプション」(値以外の値はで表されnilます)の確認は固有ですnil。実行時に型を確認する場合、暗黙的に確認します。もちろん、これはチェーン可能です。これも本質的に行われます。

静的型付き言語の場合、コンパイル時に型の決定を行う必要があるため、この追加の概念は利点です。動的型付き言語ではありえない状況です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.