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

О проекте

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

MySQL

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

Хостинг

Другое








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

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

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

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

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

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

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

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

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

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

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

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



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





Руководство пользователя для 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