Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 18.01.2014, 17:27
ZackMercury вне форума Посмотреть профиль Отправить личное сообщение для ZackMercury Найти все сообщения от ZackMercury
  № 1  
Ответить с цитированием
ZackMercury
 
Аватар для ZackMercury

блогер
Регистрация: Jul 2013
Адрес: Север
Сообщений: 1,922
Записей в блоге: 23
Отправить сообщение для ZackMercury с помощью ICQ Отправить сообщение для ZackMercury с помощью Skype™
По умолчанию Функция не возвращает значения.

Не пойму, в чем проблема. Компилятор совсем упоролся, чтоль.
Код AS3:
private function getFriend(uid:int):Friend
{
	for (var currentFriend:int = 0; currentFriend < _friends.length; currentFriend ++)
	{
		if (uid == _friends[currentFriend].getUID())
			return _friends[currentFriend];
	}
}

Старый 18.01.2014, 17:37
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 2  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Что вернет функция, если условие всегда будет false? Добавьте после цикла return null.

Старый 18.01.2014, 17:43
ZackMercury вне форума Посмотреть профиль Отправить личное сообщение для ZackMercury Найти все сообщения от ZackMercury
  № 3  
Ответить с цитированием
ZackMercury
 
Аватар для ZackMercury

блогер
Регистрация: Jul 2013
Адрес: Север
Сообщений: 1,922
Записей в блоге: 23
Отправить сообщение для ZackMercury с помощью ICQ Отправить сообщение для ZackMercury с помощью Skype™
Цитата:
Сообщение от udaaff Посмотреть сообщение
Что вернет функция, если условие всегда будет false? Добавьте после цикла return null.
Это функция для получения друга по UID. Передается UID, и в цикле сравнивается с каждым элементом массива со всеми друзьями, получая его UID. Функция нигде не используется. Поэтому функция должна возвращать один объект, один раз условие должно вернуть true.

Добавлял после цикла return null, сам до этого додумался, всё равно "Функция не возвращает значение" и ссылка на закрывающую скобку этой функции.

Добавлено через 1 минуту
Убрал указание типа возвращаемого объекта, компилятор успокоился. Но так функция выглядит не красиво

Старый 18.01.2014, 17:56
Vansimar вне форума Посмотреть профиль Отправить личное сообщение для Vansimar Найти все сообщения от Vansimar
  № 4  
Ответить с цитированием
Vansimar
 
Аватар для Vansimar

Регистрация: Sep 2010
Адрес: Moscow
Сообщений: 473
всегда должен быть возврат для false

Старый 18.01.2014, 18:00
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 5  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Цитата:
Добавлял после цикла return null, сам до этого додумался, всё равно "Функция не возвращает значение" и ссылка на закрывающую скобку этой функции.
Должно было помочь по идее.

Старый 18.01.2014, 18:11
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 6  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Код AS3:
private function getFriend(uid:int):Friend
{
	for (var currentFriend:int = 0; currentFriend < _friends.length; currentFriend ++)
	{
		if (uid == _friends[currentFriend].getUID())
			return _friends[currentFriend];
	}
     return null;
}
100% будет работать. Если не будет, значит проблема где-то в другом месте. Возможно при вызове этого метода где-то нет проверки на null

Старый 18.01.2014, 18:25
ZackMercury вне форума Посмотреть профиль Отправить личное сообщение для ZackMercury Найти все сообщения от ZackMercury
  № 7  
Ответить с цитированием
ZackMercury
 
Аватар для ZackMercury

блогер
Регистрация: Jul 2013
Адрес: Север
Сообщений: 1,922
Записей в блоге: 23
Отправить сообщение для ZackMercury с помощью ICQ Отправить сообщение для ZackMercury с помощью Skype™
Цитата:
Должно было помочь по идее.
А, ну да. Я пытался ставить в else(для проверки, будет ли работать). Поставил после цикла и всё заработало.
Спасибо.

Старый 18.01.2014, 18:31
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 8  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Зачем в else? Вы подумайте как логика цикла будет работать.
Первая итерация: сравниваем id. Не совпал, тогда обрываем выполнение и возвращаем null
Естественно, не факт, что при первой итерации будет совпадение. Цикла надо прогнать до первого совпадения, или до конца, в любом случае

Старый 18.01.2014, 18:43
ZackMercury вне форума Посмотреть профиль Отправить личное сообщение для ZackMercury Найти все сообщения от ZackMercury
  № 9  
Ответить с цитированием
ZackMercury
 
Аватар для ZackMercury

блогер
Регистрация: Jul 2013
Адрес: Север
Сообщений: 1,922
Записей в блоге: 23
Отправить сообщение для ZackMercury с помощью ICQ Отправить сообщение для ZackMercury с помощью Skype™
Для проверки, однако текст ошибки не изменился даже при наличии возвращения в else.

Создать новую тему Ответ Часовой пояс GMT +4, время: 03:43.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 03:43.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.