如何创建包含不同类型的集合
How to create a set containing different types
如何创建包含 loc、int 和字符串的集合?
在下面的示例中,我的地图似乎已转换为容器类型“value”。我想用一套的特点;
集合中只应包含一个元素,顺序无关紧要。
在下面的示例中,相同的元素包含在我希望成为集合的内容中。
rascal>mySet = ();
map[void, void]: ()
rascal>mySet += {<|project://Test/|, 1, "test"> };
value: {
(),
<|project://Test|,1,"test">
}
rascal>mySet += {<|project://Test/|, 1, "test"> };
value: {
<|project://Test|,1,"test">,
{
(),
<|project://Test|,1,"test">
}
}
再次感谢您的建议:-)
发生了一些奇怪的事情。首先 mySet 是一个地图,然后向其添加一个集合,变量 mySet
突然变成一个包含先前地图和您添加的新元素的集合。在我看来 +=
有一个错误。
如果您想向集合中添加多个元素,您应该从一个集合开始,然后像这样向其中添加元素:
rascal>mySet = { |project://Test| ,1, "test" }; // simply create the set with 3 different elements in it
set[value]: { |project://Test| ,1, "test" }
或者您可以从一个空集开始并添加元素:
rascal>mySet = {};
set[void]: {}
rascal>mySet += 1;
set[int]: {1}
rascal>mySet += |project://Test|;
set[value]: {1, |project://Test|}
rascal>mySet += "test";
set[value]: {1, |project://Test|, "test"}
如何创建包含 loc、int 和字符串的集合? 在下面的示例中,我的地图似乎已转换为容器类型“value”。我想用一套的特点; 集合中只应包含一个元素,顺序无关紧要。 在下面的示例中,相同的元素包含在我希望成为集合的内容中。
rascal>mySet = ();
map[void, void]: ()
rascal>mySet += {<|project://Test/|, 1, "test"> };
value: {
(),
<|project://Test|,1,"test">
}
rascal>mySet += {<|project://Test/|, 1, "test"> };
value: {
<|project://Test|,1,"test">,
{
(),
<|project://Test|,1,"test">
}
}
再次感谢您的建议:-)
发生了一些奇怪的事情。首先 mySet 是一个地图,然后向其添加一个集合,变量 mySet
突然变成一个包含先前地图和您添加的新元素的集合。在我看来 +=
有一个错误。
如果您想向集合中添加多个元素,您应该从一个集合开始,然后像这样向其中添加元素:
rascal>mySet = { |project://Test| ,1, "test" }; // simply create the set with 3 different elements in it
set[value]: { |project://Test| ,1, "test" }
或者您可以从一个空集开始并添加元素:
rascal>mySet = {};
set[void]: {}
rascal>mySet += 1;
set[int]: {1}
rascal>mySet += |project://Test|;
set[value]: {1, |project://Test|}
rascal>mySet += "test";
set[value]: {1, |project://Test|, "test"}