Я хочу иметь возможность отправлять значение селектора в функцию, и чтобы функция создавала строковый массив значений для использования в последующих операциях. Проблема, с которой я сталкиваюсь, заключается в том, что правила DXL не «видят» объявленную переменную внутри блока «if {}», даже если я гарантировал, что во всех случаях мой строковый массив будет инициализирован. Пример:
string tryme( int thechoice){
string outit
if (thechoice == 1){
outit = "you chose one"
}
else if (thechoice ==2){
outit = "you chose two"
}
else { outit = "bad choice"}
// do a bunch of stuff with "outit" values
return outit
}
// that works, but this doesn't
string trymore( int thechoice){
if (thechoice == 1){
string outit[] = {"you chose one","and one"}
}
else if (thechoice ==2){
string outit[] = {"you chose two","and two", "and three"}
}
else { string outit = "bad choice"}
// do a bunch of stuff with "outit" values
return outit
}
Я мог бы использовать динамические массивы, что позволило бы мне объявить массив перед "if{}", но тогда я вынужден писать циклы внутри каждого случая, используя put
для загрузки массива.
Я знаю, что в DXL есть ограниченные возможности, но если кто-нибудь знает лучший подход, пожалуйста, дайте мне знать.
дополнительное ограничение
В конце концов, я хочу иметь возможность многократно вызывать функцию из цикла, каждый раз меняя «выбор». Вот почему я не могу объявить массив строк в родительском скрипте, потому что после объявления ( string outit[] = {'a','b'}
) DXL не может удалить или изменить размер массива.