如何在 Ballerina 中创建布景?
How to create a set in Ballerina?
我需要在 Ballerina 中使用 array
弦乐创建 set
弦乐。除了在插入之前使用 reduce()
或检查 indexOf()
之外,我找不到使用 Ballerina 编程语言创建 set
的方法。
string[] arr = ["a", "b", "c", "a", "d", "c"];
string[] set = arr.reduce(function(string[] accum, string item) returns string[] {
if accum.indexOf(item) == () {
accum.push(item);
}
return accum;
}, []);
在 Ballerina 中创建布景有更好的方法吗?
因为你想要的只是一组字符串,我建议使用映射。
import ballerina/io;
public function main() {
string[] s = ["a", "b", "a"];
map<()> m = {};
foreach var i in s {
m[i] = ();
}
string[] unique = m.keys();
io:println(unique);
}
对于复杂类型的集合,我们可以使用 table
并执行类似于我们对 map 所做的操作。
如果预期的集合成员不是字符串;我们可以使用 table 代替。下面是一个例子
import ballerina/io;
type TblConstraint record {|
//can use a type that is a subtype of anydata
readonly anydata keyValue;
|};
public function main() {
int[] arr = [1, 2, 3, 3, 4, 4, 5];
table<TblConstraint> key(keyValue) setImpl = table [];
foreach int item in arr {
if (!setImpl.hasKey(item)) {
setImpl.put({keyValue: item});
}
}
//unique values as in a set
io:println(setImpl.keys());
}
我需要在 Ballerina 中使用 array
弦乐创建 set
弦乐。除了在插入之前使用 reduce()
或检查 indexOf()
之外,我找不到使用 Ballerina 编程语言创建 set
的方法。
string[] arr = ["a", "b", "c", "a", "d", "c"];
string[] set = arr.reduce(function(string[] accum, string item) returns string[] {
if accum.indexOf(item) == () {
accum.push(item);
}
return accum;
}, []);
在 Ballerina 中创建布景有更好的方法吗?
因为你想要的只是一组字符串,我建议使用映射。
import ballerina/io;
public function main() {
string[] s = ["a", "b", "a"];
map<()> m = {};
foreach var i in s {
m[i] = ();
}
string[] unique = m.keys();
io:println(unique);
}
对于复杂类型的集合,我们可以使用 table
并执行类似于我们对 map 所做的操作。
如果预期的集合成员不是字符串;我们可以使用 table 代替。下面是一个例子
import ballerina/io;
type TblConstraint record {|
//can use a type that is a subtype of anydata
readonly anydata keyValue;
|};
public function main() {
int[] arr = [1, 2, 3, 3, 4, 4, 5];
table<TblConstraint> key(keyValue) setImpl = table [];
foreach int item in arr {
if (!setImpl.hasKey(item)) {
setImpl.put({keyValue: item});
}
}
//unique values as in a set
io:println(setImpl.keys());
}