Чтобы вернуть значение по умолчанию json
в случае ошибки, я написал следующую функцию, в которой я пытаюсь использовать оператор сопоставления типа json|error
в балерине 0.991.0
Это:
function jsonIt(json|error myJson)returns json{
match myJson {
var error(detail,message) => return {};
_ => return {};
}
}
Компилирует (игнорируйте проглоченную ошибку ради аргумента), но, очевидно, не возвращает значение json.
Это:
function jsonIt(json|error myJson)returns json{
match myJson {
json j => return j;
var error(detail,reason) => return {};
}
}
Не компилируется => extraneous input 'json'
По сути, я не могу найти никакого способа сопоставления с возможным типом json
. Я пробовал:
json mj=> return mj;
var mj => return mj; //doesn't limit type to json
и несколько других. По сути, я не могу найти способ сопоставить типу json или деструктурировать его, как error(d,m)
Хотя этот вопрос стоит сам по себе, предложение более идиоматического способа достижения этого также будет оценено.