gpt4 book ai didi

class - Dart中的重复类(class)

转载 作者:行者123 更新时间:2023-12-03 02:50:13 27 4
gpt4 key购买 nike

我正在编写一个简单的应用程序,以学习一些基本的Dart编程,但无法弄清楚其结构和包含的内容-我得到了一个重复的类Point

首先,我有一个叫做MouseTrack的主类。它将初始化列表并产生循环。

#import('dart:html');
#import('Eye.dart');

class MouseTrace {
List<Eye> eyes;
...
}

其次,我有一个名为Eye的类,应该将眼睛的信息保存为一个圆。很简单:

#library('app:eye');

#import('dart:html'); // without this one, I get no error but I want to have it to use CanvasRenderingContext2D

#import('Point.dart');

class Eye {
Point position;
num radius;

Eye() :
position = new Point() {
}

void draw(CanvasRenderingContext2D context) {
// draws a circle
}
}

最后一点:

#library('app:point');

class Point {
num x, y;

Point(this.x, this.y);
}

我要实现的是3个单独的类-main,Eye和Point,因此我可以在main中拥有Eye的实例(以简化和美观的模型)和在Eye中的Point实例(以存储位置)。至少那是我习惯的方式。

附言:我知道我可以跳过类型,但是我想在那儿跳过它,我想这是包含物而不是语言的问题(并且想对其进行修复,以便我正确地做到这一点)。
P.S.S.我已经切断了一些代码,以便您不必阅读所有内容,但是,如果您愿意,我会全部张贴。

最佳答案

问题出在app:eye库(在Eye.dart文件中)。您导入了dart:htmlapp:point库,但是它们都定义了Point类。这种情况是无效的。您可以通过根本不导入dart:html(如果不需要)或给其中一个导入加上前缀来解决此问题:

#import('dart:html', prefix: 'html');
#import('Point.dart');

在这种情况下,您将必须使用 dart:html前缀来引用 html.中的名称。对于您的情况,如果要使用 CanvasRenderingContext2D类,则必须编写 html.CanvasRenderingContext2D

关于class - Dart中的重复类(class),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10262297/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com