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

О проекте

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

MySQL

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

Хостинг

Другое








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

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

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

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

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

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

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

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

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

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

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

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



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




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