我可以写:
type record0 is record
bit2 : array (0 to 1) of bit;
end record;
但我想在没有定义type mark expected in a subtype indication
的情况下这样做,因为我不需要它,例如:
Button btnRemove = new Button("Remove");
btnRemove.setMinWidth(85);
btnRemove.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent t) {
if(mediaTable.getSelectionModel().isEmpty()){
txtNotification.setText("Please select an item from the list");
}
else{
medium.remove(mediaTable.getSelectionModel().getSelectedItem());
}
}
});
但如果我尝试,GHDL 0.34说:
scene.setOnKeyReleased(new EventHandler<KeyEvent>() {
@Override
public void handle(KeyEvent event) {
System.out.println(event.getCode());
if("DELETE".equals(event.getCode())) {
System.out.println("ATTEMPT ----");
btnRemove.fire();
}
}
});
答案 0 :(得分:0)
您只是错误地声明了数组实例。而不是
type bit2_t is array (0 to 1) of bit;
type record0 is record
bit2 : array (0 to 1) of bit;
end record;
您需要使用
type bit2_t is array (integer range <>) of bit;
type record0 is record
bit2 : bit2_t(0 to 1);
end record;
如果你想要一个2位的位数组,你可以使用
type bit2_t is array (0 to 1) of bit;
type bit2_array_t is array (integer range <>) of bit2_t;
type record0 is record
bit2 : bit2_array_t(0 to 7); -- '7' or whatever your range needs to be
end record;
您可以通过将7
更改为bit2 : bit2_array_t(0 to BIT2_ARRAY_LENGTH-1);
之类的常量来使其更加通用。
如果你想让某种记录类型以某种方式表示化,那么据我所知你只能使用包泛型实现这一点,如this answer中所述。您的代码将使用所描述的包,并且此包将声明您的记录类型,其数组大小基于generic
参数。通过在每种情况下使用generic
的不同值来实例化包,您的record
可以针对这些不同的情况使用不同的元素大小。
我会注意到,我不相信包装泛型被综合工具广泛支持。