- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
// Flash vars come in as strings. We need them as booleans.
private function _convertToBoolean(value:*):Boolean {
switch(value) {
case "1":
case 1:
case "true":
case "yes":
case "on":
return true;
case "0":
case 0:
case "false":
case "no":
case "off":
case "undefined":
default:
return false;
//default:
//return Boolean(value);
}
}
wvxvw 31.01.2012 13:33 # +3
Steve_Brown 31.01.2012 15:12 # 0
loststy 31.01.2012 15:58 # −2
wvxvw 31.01.2012 17:18 # 0
2. Но если по каким-то причинам очень хочется изобрести что-то новое и необычное:
Естесственно, массив закешировать, а не создавать по-новой. Пример он на то и пример, чтобы быть коротким. Тут еще плохо то, что неожиданно для людей, которые привыкли, что любое не пустое значение строки будет приведено к true, делается все наоборот. Ну и естесственно 7 лишних кейсов, как минимум.
А этот самый плеер можно целиком сюда выкладывать. Просто скучно немного будет, но он в целом выдержан в духе и стиле подходящем под местные правила.
loststy 31.01.2012 17:21 # 0
Второй вариант да, само собой, я именно ожидал увидеть что-то простое и легкое вроде первого, но ведь оно работать не будет :(
kyzi007 31.01.2012 17:30 # 0
loststy 31.01.2012 17:32 # −1
wvxvw 31.01.2012 17:44 # 0
Да, по поводу "работать не будет" - так а код в примере вообще ахинею какую-то делает. Мой вариант - это сокращение этой ахинеи до одной строчки. А про полезность я отдельно написал, что метод новый и необычный.
loststy 31.01.2012 17:46 # 0
loststy 31.01.2012 17:47 # 0
wvxvw 31.01.2012 18:00 # 0
Нормальный человек даже задумываться не будет о том, чтобы прочитать документацию о таком моменте. Это базисная вещь языка, которую абсолютно нет смысла переопределять. То, что тут сделано, это примерно то же самое, как переопределить отнимание, и заменить его прибавлением...
loststy 31.01.2012 18:20 # 0
wvxvw 31.01.2012 18:56 # 0
Так это и есть ожидаемый результат. А то, что тут слепили работает непредсказуемо. Для предполагаемо тупых пользователей существует документация по языку и классу Boolean в том числе.
loststy 31.01.2012 19:02 # 0
В контексте же строки браузера выглядит нелогично.
Сравни:
http://example.org/foo.swf?autoplay=true
http://example.org/foo.swf?autoplay=false
Что ожидаешь от каждого урла? И причем тут тупые пользователи? Они вообще не должны лезть в документацию по языку, на котором у них продукт написан. Они лезут в документацию по продукту. А там написано то, что написали вы. И это должно выглядеть логично.
wvxvw 31.01.2012 20:08 # 0
И не нужно угадывать, а что будет если
loststy 31.01.2012 20:32 # 0
wvxvw 31.01.2012 22:11 # 0
loststy 31.01.2012 22:13 # 0
http://example.org/foo.swf?noautoplay
например. Но я все равно против этого варианта, т.к. нельзя всегда все указывать явно. Видимо, это во мне питонщик говорит.
wvxvw 31.01.2012 22:18 # 0
Приходит больной к врачу:
-- Врач, мне больно, когда я так делаю!
(зажмурившись от отвращения) -- Больной, перестаньте так делать!
Вы сами себе пытаететсь создать идиотскую проблему (а вас никто не заставляет), и потом придумываете такое же решение.
loststy 31.01.2012 22:24 # 0
Проблема многих (сам страдаю зачастую) программистов в том, что они заперты в своем маленьком мирке и часто не выходят даже за пределы реалий одного языка, который они чаще всего (или в конкретной реализации) используют. Именно поэтому есть еще и developer relations, которые могут повлиять на такой вот стиль программистов и сделать пользование продуктом удобным.
wvxvw, с тобой интересно говорить на разные темы, но конкретно в этой ветке я думаю, мы ничего нового друг для друга уже не откроем и мнение не изменим. За сим, предлагаю дискуссию свернуть ;)
wvxvw 31.01.2012 22:25 # +1
loststy 31.01.2012 22:28 # 0
wvxvw 31.01.2012 22:28 # 0
loststy 31.01.2012 22:29 # 0
loststy 31.01.2012 22:30 # +2
bugmenot 31.01.2012 18:47 # +1
это вам не похапе!
loststy 31.01.2012 18:50 # 0
TarasB 31.01.2012 20:52 # +2
wvxvw 31.01.2012 22:30 # 0
Lure Of Chaos 01.02.2012 01:41 # 0
guest8 09.04.2019 12:36 # −999