構造体
Kotlinでは、データを保持するためだけのクラスとして、data class構文により「データクラス」を定義することができる。データクラスはミュータブルだが、通常のクラス同様に参照型であることには変わりなく、変数の代入は参照のみのコピーとなる。そのため、すべてのプロパティをコピーした新たなオブジェクトを生成するには、コンパイラの推論によって暗黙的に自動定義されたcopy()関数を使うなどする。サブクラスを定義することはできない。
C#では、構造体の定義にstructキーワードを使用する。classキーワードにより定義されるクラスは「参照型」である一方、構造体は軽量なオブジェクト型を定義するための「値型」であり、クラスと比較していくつかの制約がある。
VB.NETでは、構造体の定義にStructureキーワードを使用する。姉妹言語であるC#の構造体と類似の機能である。
Swiftでは、構造体の定義にstructキーワードを使用する。C#と同様、classキーワードにより定義されるクラスは参照型である一方、構造体は値型である。SwiftのクラスはObjective-Cのクラスに対応する概念であり相互運用できるが、構造体は相互運用することができない。
オブジェクト指向言語でないCなどでオブジェクト指向プログラミングを模倣するために構造体を使うこともある。