Как присвоить значение локальной переменной в функции в Data Weave

введите здесь описание изображения Привет, я получаю сообщение об ошибке "Недопустимый ввод", ожидается "}" для блока do. Я пытаюсь создать объединенный строковый вывод

fun getStreetAddress(address1 ,address2) = 
do {
var addr1 = address1
var addr2 = address2
var finalAddress = ""
---
if(null != address1 and sizeOf(address1>30)) 
addr1 = address1[0 to 30]
if(null != address2 and sizeOf(address2>30)) 
addr2 = address2[0 to 30]
finalAddress = "$(addr1) $(addr2)"
}

person VKP    schedule 14.02.2021    source источник


Ответы (1)


Вы неправильно используете переменные. Вы не можете присвоить значение переменной в теле блока. Только в части определения перед разделителем ---. Помните, что DataWeave - это функциональный язык, а не императивный.

Попробуйте вернуть результат оценок напрямую. Вы также можете использовать if () как функцию.

person aled    schedule 14.02.2021
comment
Извините, я не на 100% следую. Не могли бы вы изменить код, чтобы он заработал? - person VKP; 14.02.2021
comment
Я не перед компьютером, а перед телефоном, я не могу это проверить. Должно получиться что-то вроде ---(if (cond1) address1[0 to 30] else "" ) ++ (if (cond2) ...) - person aled; 14.02.2021
comment
Спасибо, что работает - person VKP; 15.02.2021