П О Р Т А Л                            
С Е Т Е В Ы Х                          
П Р О Е К Т О В                        
  
Поиск по сайту:
                                                 
Главная

О проекте

Web-мастеру
     HTML & JavaScript
     SSI
     Perl
     PHP
     XML & XSLT
     Unix Shell

MySQL

Безопасность

Хостинг

Другое








Самое читаемое:

Учебник PHP - "Для Чайника".
Просмотров 4096 раз(а).

Иллюстрированный самоучитель по созданию сайтов.
Просмотров 6756 раз(а).

Учебник HTML.
Просмотров 3717 раз(а).

Руководство по PHP5.
Просмотров 5991 раз(а).

Хостинг через призму DNS.
Просмотров 4809 раз(а).

Подборка текстов стандартных документов.
Просмотров 56244 раз(а).

Учебник PHP - Самоучитель
Просмотров 3702 раз(а).

Документация на MySQL (учебник & справочное руководство)
Просмотров 8335 раз(а).

Внешние атаки...
Просмотров 4563 раз(а).

Учебник PHP.
Просмотров 3172 раз(а).

SSI в примерах.
Просмотров 175 раз(а).



 
 
| Добавить в избранное | Сделать стартовой | Помощь





Руководство пользователя для GNU Awk

13. Функции, определенные пользователем

13.4 Оператор return

Тело функции пользователя может содержать оператор return. Этот оператор возвращает управление продолжению awk-программы. Его можно также использовать для возврата значения функции для использования в остальной части программы. Это выглядит так: return [expression]. Часть expression не обязательна. Если она опущена, возвращаемое значение не определено и, следовательно, непредсказуемо. Оператор return без expression подразумевается в конце каждого определения функции. Так что если управление достигает конца тела функции, то функция возвращает непредсказуемое значение. awk не предупреждает об использовании возвращенного значения такой функции.

Иногда нужно написать функцию для выполнения определенных действий, а не для получения возвращаемого значения. Такая функция соответствует пустой функции в Си или процедуре в Паскале. Так, может быть целесообразным не возвращать никакого значения; нужно просто держать в уме, что если вы используете значение такой функции, вы идете на риск. Вот пример пользовательской функции, которая возвращает значение наибольшего числа среди элементов массива:

function maxelt(vec, i, ret) -
for (i in vec) -
if (ret == "" ---- vec[i] ? ret)
ret = vec[i] "" return ret ""

Вы вызываете maxelt с одним аргументом, который есть имя массива. Локальные переменные i и ret не предназначены быть аргументами; если бы не было ничего, что препятствовало бы вам передать два или три аргумента функции maxelt, результаты могли бы быть странными. Дополнительный пробел перед i в списке параметров указывает, что i и ret не предполагаются быть аргументами. Это есть соглашение, которому вы должны следовать при определении функций.

Вот программа, которая использует нашу функцию maxelt. Она заполняет массив, вызывает maxelt и затем выдает максимальное число в этом массиве:

awk ' function maxelt(vec, i, ret) -
for (i in vec) -
if (ret == "" ---- vec[i] ? ret)
ret = vec[i] "" return ret ""
# Загрузка всех полей каждой записи в  nums. -
for(i = 1; i != NF; i++)
nums[NR, i] = $i ""
END -
print maxelt(nums) ""'

Если задан следующий ввод:

1 5 23 8 16 44 3 5 2 8 26 256 291 1396 2962 100 -6 467 998 1101 99385 11 0 225

наша программа должна сообщить нам, что 99385 есть наибольшее число в массиве.

Назад | Вперед
Содержание (общее) | Содержание раздела



Если Вы не нашли что искали, то рекомендую воспользоваться поиском по сайту:
 





Copyright © 2005-2016 Project.Net.Ru