2011-06-22 8 views
0

私は実際に動的/スクリプト言語を使用していません。だから、私は欠点、良い部分などを知りません。誰かと話しながら、彼は暗黙のうちにあなたが望んだものにオブジェクトを変換することができますが、試してみません。動的言語による暗黙的な変換の賛否両論?

人々はPythonを好むようです。動的言語の暗黙の変換は悪いですか?それは悪いですか? (彼はそれを望んでいた)動的言語の暗黙的な変換の賛否両論は何ですか?

答えて

2

長所:

  • ほとんどの場合、 "あなたは何を意味するかい"。
  • 文字列を数値として半自由に扱うことができます。逆も同様です。私はこれをPerlで少し使って、数字の文字列演算を行いました。そうでなければ、はっきりしない数学を含むでしょう。

短所:それは失敗しない

  • 、それはしばしば神秘的な方法で失敗しました。たとえば、先行ゼロは、8進数を知っている言語で奇妙な問題を引き起こす可能性があります。 '00'から '07'までは正常に動作しますが、 '08'と '09'は壊れます。
  • 場合によっては、を実行すると、の型がわかります。例:PHPと何かが失敗したときにfalseを返すその習慣。 strpos($a, $b)が0を返すと、$ aの先頭に$ bが見つかりました。 falseはそれがまったく見つからないことを意味します。しかし、暗黙的な変換により、0とfalseは同等になります。 (幸いにも、PHPはこれを軽減するために===演算子を持っています。)
  • 変換にはCPUサイクルがかかります。それほどではありませんが、暗黙の変換魔法を望まない場合は、なぜそれを支払うのですか?
0

私はこれを使用例の側面で見るのが好きです。だから私の答えは、それは実際にあなたが何をしたいかに依存します
Webアプリケーションを作成している場合は、より洗練されたコード(多くの機能やメソッドの呼び出しを必要とせずにコードを変換するコード)を作成するのに役立ちます。下に行くと、不思議なバグが発生する可能性があります。 )より明確で分かりやすいコードを書くことは、開発と変更のコストを削減するのに役立ち、この潜在的なバグを修正するコストは無視できます。
例えば、安全上重要なハードウェア(例えばスペースシャトル)用のファームウェアを作成している場合、潜在的なバグには何百万ドルも、年間と時間もエネルギーもかかります。この場合、プロジェクトの全目的を保護するためにいくつかの変換関数とメソッドを書く苦痛。