Новые веб-проекты должны рассмотреть возможность не использовать Java.
Я использую Java для веб-разработки уже более 10 лет. Сначала это был шаг в правильном направлении по сравнению с доступными альтернативами. Теперь есть лучшие альтернативы, чем Java.
Это на самом деле только частный случай подхода «волшебный молоток» к решению проблем, но он действительно болезненный.
В ответе DevSolar есть один момент, который я не понимаю (возможно, у него есть конкретная причина для этого, но я не могу придумать ни одной): он устанавливает массив из элемента позиционных параметров по элементу, итеративно.
Более простой подход будет
called_function()
{
...
# do everything like shown by DevSolar
...
# now get a copy of the positional parameters
local_array=("$@")
...
}
Примечание: Это довольно грубое решение, которое я опубликовал сам, не найдя здесь ответа на Stack Overflow. Он позволяет передавать только один массив, и он является последним элементом списка параметров. Фактически, он передает вовсе не массив, а список его элементов, которые повторно собираются в массив с помощью call_function (), но у меня это сработало. Несколько позже Кен опубликовал свое решение, но я оставил свое здесь для «исторической» справки.
calling_function()
{
variable="a"
array=( "x", "y", "z" )
called_function "${variable}" "${array[@]}"
}
called_function()
{
local_variable="${1}"
shift
local_array=("${@}")
}
Улучшено TheBonsai, спасибо.