Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Значние !(random(n)) (http://www.flasher.ru/forum/showthread.php?t=209335)

Vlad84 31.10.2014 13:00

Значние !(random(n))
 
Объясните, как читается на человеческом языке такая конструкция:

Код AS1/AS2:

trace(!(random(8)))

Почему он выводит рандомно true/false ???

dark256 31.10.2014 13:07

true он выводит при рандоме равном 0.
Соотв НЕ-НОЛЬ это 1-ца, то бишь тру......
Все прочие варианты - false
В целом это либо бред, либо.... гениально....

Монетка со смещенным центром. Вероятность выпадения - 12.5 %

Vlad84 31.10.2014 14:37

Это гениально :)

Код AS1/AS2:

!0 = true
!1 = false
 
// Получается, что !(random(2)), это более короткий аналог:
 
var r:Number = random(2)
if(r == 0){
        trace(true)
}else{
        trace(false)
}


А есть где-то список таких сокращений??? Я еще знаю вот такую штуку:

Код AS1/AS2:

trace(["a", "b", "c"][random(3)])

Выдает произвольный элемент массива.

Psycho Tiger 31.10.2014 21:15

Это не сокращение, это конструкция языка.
! – оператор отрицания. Если после ! идёт что-нибудь, что существует (строка, объект, число не ноль) – оно отрицается и выходит отрицание на конце. Если, соответственно, не существует – отрицается пустота и выходит, что что-то есть.

Другими словами, ! – это как "минус" в логическом понимании. Если что-то есть это плюс, если ничего нет – это минус. Минус на минус – плюс. Минус с плюсом – минус.


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

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