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

О проекте

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

MySQL

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

Хостинг

Другое








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

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

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

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

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

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

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

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

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

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

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

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



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




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