Open KeihakuOh opened 2 hours ago
GoやPythonのような言語では、リストやノードの構造体(ListNodeなど)は参照渡しで処理されます。
リストやノードが関数に渡される際、そのオブジェクト自体ではなく、そのオブジェクトへの参照(メモリアドレス)が渡されることを意味します。その結果、関数内でオブジェクトに変更を加えると、元のオブジェクトにもその変更が反映されます。
list A = list B のように代入すると、A と B は同じリストオブジェクトを指します。つまり、list A や list B のどちらかを変更すると、両方に影響が及びます。これは、リストが参照型のオブジェクトであるためです。
静的型と動的型とは
静的型:変数の型がコンパイル時に決定されるため、一度変数に型が割り当てられると、その型を変更することができません。
例:Java、ts
動的型:変数の型が実行時に決定されるため、型を意識せずに自由に変数に値を代入することができます。
例:JavaScript、python