C++ c+的Kotlin当量+;类数组

C++ c+的Kotlin当量+;类数组,c++,arrays,class,kotlin,C++,Arrays,Class,Kotlin,我试图找到Kotlin在C中创建类数组的等效方法++ class Widget { public: int x; float w; } Widget data[100]; 如果声明了一个类小部件,则可以创建一个包含100个小部件的数组,如下所示: val data = Array(100) { Widget() } 数组构造函数接受两个参数。第一个参数是数组的大小,第二个参数是用于创建其元素的初始化函数。在本例中,我只调用小部件的默认构造函数 此外,如

我试图找到Kotlin在C中创建类数组的等效方法++

class Widget {
public:
  int x;              
  float w; 
}

Widget data[100];

如果声明了一个
类小部件
,则可以创建一个包含100个
小部件
的数组,如下所示:

val data = Array(100) { Widget() }
数组
构造函数接受两个参数。第一个参数是数组的大小,第二个参数是用于创建其元素的初始化函数。在本例中,我只调用
小部件的默认构造函数

此外,如果您需要创建元素,此初始化函数将作为参数接收正在创建的元素的索引

编辑:@Miha_x64在上面的评论中提出了一些好的观点,因此我将在这里也包括一些

您还可以使用
arrayOfNulls
创建数组,而无需创建要立即放入其中的元素

val nullableWidgets = arrayOfNulls<Widget>(100)
val nullableWidgets=arrayOfNulls(100)

这将为您提供一个
数组
而不是
数组
,并将该数组的所有元素初始化为
null

如果您声明了一个
类小部件
,您可以创建一个包含100个
小部件
的数组,如下所示:

val data = Array(100) { Widget() }
数组
构造函数接受两个参数。第一个参数是数组的大小,第二个参数是用于创建其元素的初始化函数。在本例中,我只调用
小部件的默认构造函数

此外,如果您需要创建元素,此初始化函数将作为参数接收正在创建的元素的索引

编辑:@Miha_x64在上面的评论中提出了一些好的观点,因此我将在这里也包括一些

您还可以使用
arrayOfNulls
创建数组,而无需创建要立即放入其中的元素

val nullableWidgets = arrayOfNulls<Widget>(100)
val nullableWidgets=arrayOfNulls(100)

这将为您提供一个
Array
而不是
Array
,并将数组的所有元素初始化为
null

,这是对那些了解C/C++并想学习Java/Kotlin的人的一个提示。在Java和Kotlin中,不能只声明一个变量,必须显式地初始化它,例如。g<代码>小部件或Kotlin中的
val widget:widget
不会创建新的widget,
widget widget=new widget()
val小部件:widget=widget()。类似地,
val-data:Array
只是一个变量,
val-data:Array=Array(100){Widget()}
是一个数组初始化,因为数组也是对象,行为相同。另外,Kotlin相当于Java的
新事物[x]
arrayOfNulls(x)
。这是给那些了解C/C++并想学习Java/Kotlin的人的一个提示。在Java和Kotlin中,不能只声明一个变量,必须显式地初始化它,例如。g<代码>小部件或Kotlin中的
val widget:widget
不会创建新的widget,
widget widget=new widget()
val小部件:widget=widget()。类似地,
val-data:Array
只是一个变量,
val-data:Array=Array(100){Widget()}
是一个数组初始化,因为数组也是对象,行为相同。同样,Kotlin相当于Java的
新事物[x]
arrayOfNulls(x)