このトピックは参照用としてのみ用意されており、動的型付けと静的型付けの違いについて説明します。動的型付けと静的型付けの違いについて理解することは、変換スクリプトのエラーの処理方法や、Groovyでのエラーの処理方法との違いについて理解する上で重要です。これはまた、変換スクリプトで発生したエラーを解釈する上でも役に立ちます。
変換スクリプトを作成する際に注意すべき動的型付けと静的型付けの違いは主に2つあります。
最初に、動的型付け言語では、型チェックが実行時に行われるのに対し、静的型付け言語では、型チェックがコンパイル時に行われます。つまり、動的型付け言語(Groovyなど)で作成されたスクリプトは、スクリプトが正しく動作することを妨げるエラー(存在する場合)が含まれていても、コンパイルできます。静的型付け言語(Javaなど)で作成されたスクリプトにエラーが含まれる場合、エラーが修正されるまではコンパイルが失敗します。
// Java example int num; num = 5;
// Groovy example num = 5
どちらの例でも、同じ処理を実行しています。つまり、numと呼ばれる変数を作成し、これに値5を割り当てています。この違いは、Java例の最初の行であるint num;にあります。ここでは、numのデータ型をintとして定義しています。Javaは静的に型付けされるため、変数を宣言してから変数に値を割り当てることを想定しています。Groovyは動的に型付けされ、変数のデータ型をその値に基づいて決定するため、この行は必要ありません。
// Groovy example number = 5 numbr = (number + 15) / 2 // note the typo
このコードの場合、値5を持つ変数numberを作成し、この値に15を加算してから2で除算することにより、この値を10に変更しています。しかし、2番目の行の先頭でnumberのスペルが間違っています。Groovyでは変数を宣言する必要がないため、numbrと呼ばれる新しい変数が作成され、numberが持つはずだった値がこの変数に割り当てられます。このコードは正常にコンパイルされますが、値が10であると想定されるnumberを使用して何らかの処理をスクリプトで実行しようとするときにエラーが発生する可能性があります。