Форум Pawn.Wiki - Воплоти мечту в реальность!: Использование Returna.уменьшение Строк. - Форум Pawn.Wiki - Воплоти мечту в реальность!

Перейти к содержимому

Страница 1 из 1
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

[ Урок ]
Использование Returna.уменьшение Строк.
Оценка: ****- 1 Голосов

#1
Пользователь офлайн   Romzes 

  • ( ^_^ )
  • Вставить ник
  • Раскрыть информацию
Итак.Думаю не зачастую вам приходится где либо делать так:
if(params != 0)
{
SendClientMessage(playerid,-1,"params ведь не равно 0!");
params++;
}

Далее я хочу рассмотреть саму функцию return.Что с английского переводится вернуть или остановить.Соотвественно в павно данной функцией мы останавливаем чтение кода дальше и возвращаемся в начало мода.Тоесть ретурн ограждает от лишних проверок.(оптимизация):
if(params != 0)
{
SendClientMessage(playerid,-1,"params ведь не равно 0!");
params++;
}
if(trolka == 3)
{
trolka++;
}

В данном случае после проверки params пойдёт проверка тролка.Сдесь конечно на ваше желание.Если вам нужно проверить и парамс, и тролку тогда ретурн не нужен.Если же только парамс,то нужен ретурн:
if(params != 0)
{
SendClientMessage(playerid,-1,"params ведь не равно 0!");
params++;
return 1;
}
if(trolka == 3)
{
trolka++;
}
Традиция павно вовращать 1,не будем её нарушать.В данном случае мы сделали максимальное.
Рассмотрим ещё один пример.Уже ошибка в оптимизации с ретурном.

if(YOUFBI != 0)
{
SendClientMessage(playerid,-1,"Ты же не фбр!");
return 1;
}

Вроде всё правильно.Но есть один штришок.Мы имеем право сразу возвращать сообщение,а не 1.
if(YOUFBI != 0) return SendClientMessage(playerid,-1,"Ты же не фбр!");

Этим мы приостанавливаем проверки и выводим сообщение.:ay:
Что же я ещё хотел показать?А точно...Когда то я писал урок по switch/case так вот аналогичная ситуация.Часто вижу такое:
switch(op)
{
case 1:
{
op++;
}
case 2:
{
op--;
}
}

Всё выше написанное можно сделать так:
switch(op)
{
case 1:op++;
case 2:op--;

0

#2
Пользователь офлайн   4erpa4ok 

  • Прохожий
  • Вставить ник
  • Раскрыть информацию
В чём раздница между возврашением цифер 1 или 0 (return 1 / return 0)?xD не удивляйся сколько скриптингом занимаюсь досихпор не знаю:D
0

#3
Пользователь офлайн   Psyho 

  • Прохожий
  • Вставить ник
  • Раскрыть информацию

Просмотр сообщения4erpa4ok (22 августа 2011 - 01:31) писал:

В чём раздница между возврашением цифер 1 или 0 (return 1 / return 0)?xD не удивляйся сколько скриптингом занимаюсь досихпор не знаю:D

return 1; - в модах,
return 0; - в скриптах вроде бы
0

#4
Пользователь офлайн   d.o.c. 

  • Прохожий
  • Вставить ник
  • Раскрыть информацию

Цитата

В чём раздница между возврашением цифер 1 или 0 (return 1 / return 0)?xD не удивляйся сколько скриптингом занимаюсь досихпор не знаю

Если уж начинаешь заниматься скриптингом, то лучше сразу изучай оптимизацию, код лесенкой хоть и удобен, но нагрузка на ЦП машин больше будет, да и строк будет много!
0

#5
Пользователь офлайн   n0rze 

  • Новичок
  • Вставить ник
  • Раскрыть информацию
Оптимизация для forward'ов

ко всем define :
#define publics:%0(%1) 	forward %0(%1); \
						public %0(%1)

и public заменяем на publics:


forward'ы можно удалить :)

Сообщение отредактировал n0rze: 10 июня 2012 - 10:38

1

#6
Пользователь офлайн   Jake_Tyler 

  • Местный
  • Вставить ник
  • Раскрыть информацию
Чем отличается return 1; и return true; и правда ли что эта функция снижает нагрузку в можде?
0

#7
Пользователь офлайн   iRusel 

  • Профессионал
  • Вставить ник
  • Раскрыть информацию
Разницы нет что return 1; что return true; нагрузку оно не уменьшает это возврат функции либо значения.

Сообщение отредактировал iRusel: 18 мая 2013 - 23:14

0

#8
Пользователь офлайн   VetalOK 

  • Брат за брата
  • Вставить ник
  • Раскрыть информацию
Разницы вообще нету, нагрузки не знижает! Дело ретарна - остановить выполнение функции в определенном месте
2

#9
Пользователь офлайн   WILD02RUS 

  • Новичок
  • Вставить ник
  • Раскрыть информацию

Просмотр сообщенияn0rze (10 июня 2012 - 10:27) писал:

Оптимизация для forward'ов

ко всем define :
#define publics:%0(%1) 	forward %0(%1); \
						public %0(%1)

и public заменяем на publics:


forward'ы можно удалить Изображение

Шта!? Не заводись в заблуждение! Это не оптимизация! Это упрощение использования forward&public
0

Поделиться темой:


Страница 1 из 1
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

1 человек читают эту тему
0 пользователей, 1 гостей, 0 скрытых пользователей


Яндекс.Метрика