假设我有如下代码片段:
var value = foo(key);
match value {
int intVal => return intVal;
string|float|boolean|map|() x => {
error err = { message: "Expected an 'int', but found '<type_of_x>'" };
throw err;
}
}
foo()
返回一个并集:int|string|float|boolean|map|()
在上述情况下,我期望返回值的类型为“int”,如果不是,则希望打印错误,表示需要 int
但发现 type_of_x
相反。这可以在《芭蕾舞女 Actor 》中完成吗?
最佳答案
Ballerina 语言目前没有类似于 typeof
的运算符。不过,我可以建议一个明显的解决方法来扩展 Nuwan 的解决方案。
function bar () returns int {
var value = foo();
string typeName;
match value {
int intVal => return intVal;
string => typeName = "string";
float => typeName = "float";
boolean => typeName = "boolean";
map => typeName = "map";
() => typeName = "nil";
}
error err = { message: "Expected an 'int', but found '" + typeName + "'" };
throw err;
}
function foo() returns int|string|float|boolean|map|() {
return "ddd";
}
关于ballerina - 我可以获得联合类型变量的实际类型吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50285153/