0
私はあなたが宣言class Widget
を持っている場合は、あなたがそうのような100のWidget
の配列を作成することができますC++のクラスの配列がKotlin相当++クラス配列
class Widget {
public:
int x;
float w;
}
Widget data[100];
私はあなたが宣言class Widget
を持っている場合は、あなたがそうのような100のWidget
の配列を作成することができますC++のクラスの配列がKotlin相当++クラス配列
class Widget {
public:
int x;
float w;
}
Widget data[100];
作るのKotlin相当を見つけようとしています:
val data = Array(100) { Widget() }
Array
コンストラクタには2つの引数があります。最初の引数は配列のサイズであり、2番目の引数はその要素を作成するための初期化関数です。この例では、デフォルトのコンストラクタをWidget
と呼びます。
また、この初期化関数は、要素の作成に必要な場合は、作成する要素のインデックスをパラメータとして受け取ります。
編集: @ Miha_x64は、上記のコメントでいくつかの点を強調しました。
arrayOfNulls
を使用して、すぐに配置する要素を作成せずに配列を作成することもできます。
val nullableWidgets = arrayOfNulls<Widget>(100)
これは、あなたの代わりにArray<Widget>
のArray<Widget?>
を与え、そしてnull
に配列の要素のすべてを初期化します。
C/C++を知っていて、Java/Kotlinを学びたい人のためのメモ。 JavaとKotlinでは、変数を宣言するだけではなく、明示的にeを初期化する必要があります。 g。 KotlinのJavaまたは 'val widget:Widget'の' Widget widget; 'は新しいウィジェットを作成せず、' Widget widget = new Widget(); 'または' val widget:Widget = Widget() 'となります。同様に、 'val data:Array'は単なるvarableであり、 'val data:Array = Array(100){Widget()}'は配列のオブジェクトでもあり、同じように動作するので配列の初期化です。また、Javaの 'new Something [x]'に相当するKotlinは 'arrayOfNulls (x)'です。 –