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

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

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

Регистрация: Jun 2014
Сообщений: 558
По умолчанию как понять строчку кода

Добрый день!
Знаю, вопрос элементарный, но не понимаю строчку кода
Код AS3:
 (bodyType < 0.5) ? this.genCircle() : this.genRectangle();
из этого урока по Box2D

прошу, кому не сложно, посимвольно разобрать, так как вообще не понимаю эту запись

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

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
&lt; - расшифровывается как less than (обратный символ &gt; greater than). В html символ < заменяют этим кодом, чтобы символ отображался. Здесь эту штуку нужно просто заменить на <
то есть
Код AS3:
(bodyType < 0.5) ? this.genCircle() : this.genRectangle();
А то, что идет дальше ( ? : ) - это называется тернарный, или троичный условный оператор. Знак вопроса можно воспринимать как "тогда", а двоеточие как "иначе". То есть
Код AS3:
если (bodyType < 0.5) тогда this.genCircle() иначе this.genRectangle();

Старый 06.04.2015, 14:01
neonoviiwolf вне форума Посмотреть профиль Отправить личное сообщение для neonoviiwolf Найти все сообщения от neonoviiwolf
  № 3  
Ответить с цитированием
neonoviiwolf

Регистрация: Jun 2014
Сообщений: 558
т.е. по нашему
Код AS3:
if (bodyType < 0.5){
     this.genCircle()
}else{
    this.genRectangle();
}
это вариант записи на as3? или автор темы намудрил?

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

блогер
Регистрация: Feb 2011
Адрес: Россия, Тольятти
Сообщений: 301
Записей в блоге: 10
Он не намудрил. Иногда, когда действий в блоках всего одно можно обойтись без {} и else, используя ? и :
__________________
Надо сменить подпись...

Старый 06.04.2015, 14:16
callme вне форума Посмотреть профиль Отправить личное сообщение для callme Найти все сообщения от callme
  № 5  
Ответить с цитированием
callme
 
Аватар для callme

Регистрация: Dec 2014
Сообщений: 312
Когда автор статьи копировал код на сайт, вкралась ошибка.

Цитата:
&lt; вместо "<"
Плюс почитайте:
https://ru.wikipedia.org/wiki/%D0%A2...86%D0%B8%D1%8F

Старый 06.04.2015, 14:20
neonoviiwolf вне форума Посмотреть профиль Отправить личное сообщение для neonoviiwolf Найти все сообщения от neonoviiwolf
  № 6  
Ответить с цитированием
neonoviiwolf

Регистрация: Jun 2014
Сообщений: 558
Ок, всем спасибо!

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

блогер
Регистрация: Jul 2013
Адрес: Север
Сообщений: 1,921
Записей в блоге: 23
Отправить сообщение для ZackMercury с помощью ICQ Отправить сообщение для ZackMercury с помощью Skype™
Цитата:
это вариант записи на as3? или автор темы намудрил?
В AS3 тоже есть тернарные операторы.
(condition) ? ifTrue : ifFalse;

Добавлено через 14 минут
Цитата:
Он не намудрил. Иногда, когда действий в блоках всего одно можно обойтись без {} и else, используя ? и :
Если действий в блоках всего одно, то можно написать так:

Код AS3:
if(isDead) resurrect();
Тернарные операторы позволяют упростить чтение свитча из двух действий, и записать это дело в одну строчку.
__________________
There is no thing in this world that is not simple.


Последний раз редактировалось ZackMercury; 06.04.2015 в 17:02.
Старый 06.04.2015, 17:26
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 8  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Цитата:
Тернарные операторы позволяют упростить чтение свитча из двух действий
Он делает запись более короткой. Но читаются такие конструкции всегда хуже

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

блогер
Регистрация: Jul 2013
Адрес: Север
Сообщений: 1,921
Записей в блоге: 23
Отправить сообщение для ZackMercury с помощью ICQ Отправить сообщение для ZackMercury с помощью Skype™
Цитата:
Сообщение от caseyryan Посмотреть сообщение
Он делает запись более короткой. Но читаются такие конструкции всегда хуже
Как привыкнешь - наоборот проще читается.
Правда ещё надо ж оформлять правильно, тогда у тебя проблем не будет с чтением х)
__________________
There is no thing in this world that is not simple.

Старый 06.04.2015, 18:38
Zebestov вне форума Посмотреть профиль Отправить личное сообщение для Zebestov Посетить домашнюю страницу Zebestov Найти все сообщения от Zebestov
  № 10  
Ответить с цитированием
Zebestov
Lorem ipsum
 
Аватар для Zebestov

модератор форума
Регистрация: May 2001
Адрес: Одесса
Сообщений: 4,869
Записей в блоге: 4
Цитата:
Сообщение от ZackMercury Посмотреть сообщение
Если действий в блоках всего одно, то можно написать так:
Код AS3:
if(isDead) resurrect();
А я и вовсе люблю так:
Код AS3:
isDead && resurrect();
__________________
Поймай яблоко 2!

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

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

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


 


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


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