Class 在类内创建由构造函数确定大小的数组

Class 在类内创建由构造函数确定大小的数组,class,object,racket,Class,Object,Racket,我的问题与此很相似 但我要在球拍公司工作。 所以我想实现一个表示对象多边形(任意数量的边)的类。多边形是由边的数量和按顺时针顺序排列的顶点精确确定的。所以我的类必须包含这些属性。 有没有办法在球拍中实现这一点。 我不是racket方面的专家(我在racket方面只做过函数编程,但我想在我的课程项目中使用内置类和向量)。还有其他抽象方式表示多边形的方法吗首先,我要声明我同意@Slywester的观点,很多时候你并不想在Racket中使用类 但是,有时你会这样做,这就是为什么会提供它们 您要查找的关

我的问题与此很相似

但我要在球拍公司工作。 所以我想实现一个表示对象多边形(任意数量的边)的类。多边形是由边的数量和按顺时针顺序排列的顶点精确确定的。所以我的类必须包含这些属性。 有没有办法在球拍中实现这一点。
我不是racket方面的专家(我在racket方面只做过函数编程,但我想在我的课程项目中使用内置类和向量)。还有其他抽象方式表示多边形的方法吗首先,我要声明我同意@Slywester的观点,很多时候你并不想在Racket中使用类

但是,有时你会这样做,这就是为什么会提供它们

您要查找的关键字是
init field
,它在racket类中声明了一个公共字段,该字段可供该类内外的成员访问。(如果不希望它成为公共字段,最好只使用
init
,但在方法中使用变量会有点困难。)

init field
初始化的字段在类的范围内也可用,本例创建了一个名为
vec
的数组,该数组具有给定字段的长度

从这里,您可以使用
new
实例化类,并使用
send-get-vector
获取数组:

> (define p (new polygon% [size 10]))
> (send p get-vector)
'#(0 0 0 0 0 0 0 0 0 0)

首先,我应该声明我同意@Slywester的说法,很多时候你实际上不想在Racket中使用类

但是,有时你会这样做,这就是为什么会提供它们

您要查找的关键字是
init field
,它在racket类中声明了一个公共字段,该字段可供该类内外的成员访问。(如果不希望它成为公共字段,最好只使用
init
,但在方法中使用变量会有点困难。)

init field
初始化的字段在类的范围内也可用,本例创建了一个名为
vec
的数组,该数组具有给定字段的长度

从这里,您可以使用
new
实例化类,并使用
send-get-vector
获取数组:

> (define p (new polygon% [size 10]))
> (send p get-vector)
'#(0 0 0 0 0 0 0 0 0 0)

你为什么需要一张支票?你需要多摩门教吗?如果不是,一个简单的函数还不够吗?是的,需要继承和私有成员函数。为什么需要一个简单的函数?你需要多摩门教吗?如果不是,一个简单的函数还不够吗?是的,需要继承和私有成员函数。