Проверка пола в IF?

Andy Idol

Новичок
Регистрация
28.05.2016
Сообщения
29
Благодарностей
0
Баллы
1
Здравствуйте!

Пытаюсь проверять пол из профиля через условный оператор IF, перепробовал уже всё что можно, оператор всегда переходит по ложной ветке.

Пробовал следующие условия:
  • {-Profile.Sex-}
  • {-Profile.Sex-} == True
  • {-Profile.Sex-} == "True"
  • {-Profile.Sex-} == 'True'

Всё равно программа всегда интерпретирует условие как ложное.

Подскажите пожалуйста, как правильно задать условие. Благодарю!
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 614
Благодарностей
4 602
Баллы
113

Andy Idol

Новичок
Регистрация
28.05.2016
Сообщения
29
Благодарностей
0
Баллы
1

doc

Client
Регистрация
30.03.2012
Сообщения
8 614
Благодарностей
4 602
Баллы
113
OMG, благодарю. Ни за что в жизни бы сам не догадался. А с чем связан такой странный синтаксис? Где можно почитать подробнее?
все переменные зенки строковые. В нужных местах, например, увеличение уменьшение счетчика или сравнение чисел в if, она интерпретирет их в числовые. Типа булеан там нет. Либо строки, например, '{-переменная-}' == 'True', либо числа, например, {-переменная-} == 3. Какой тип подразумевается в условии решают кавычки. От этих данных и отталкивайся.
 

Andy Idol

Новичок
Регистрация
28.05.2016
Сообщения
29
Благодарностей
0
Баллы
1
Благодарю :ay:

А разработчикам советую обновить документацию, в частности вот эту статью:
http://zennolab.com/wiki/ru:logic
(там об этом ничего явно не сказано, лучше добавить конкретные примеры)
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 614
Благодарностей
4 602
Баллы
113
Да вроде всё там это есть. Без конкретных примеров, но достаточно подробно и понятно. Правда, чуток не так, как я написал


Cинтаксические особенности
Cинтаксические особенности основаны на сравнении разных типов данных. Данные в логике можно разделить на два типа - числовой и не числовой(текст).

При сравнении чисел не нужно использовать кавычки.

При сравнении текста нужно использовать кавычки. Аналогично и при сравнении переменных, если в них лежит текст.

Кавычки могут быть как одинарные ' ' так и двойные " " .
 

Andy Idol

Новичок
Регистрация
28.05.2016
Сообщения
29
Благодарностей
0
Баллы
1
Да вроде всё там это есть. Без конкретных примеров, но достаточно подробно и понятно. Правда, чуток не так, как я написал


Cинтаксические особенности
Cинтаксические особенности основаны на сравнении разных типов данных. Данные в логике можно разделить на два типа - числовой и не числовой(текст).

При сравнении чисел не нужно использовать кавычки.

При сравнении текста нужно использовать кавычки. Аналогично и при сравнении переменных, если в них лежит текст.

Кавычки могут быть как одинарные ' ' так и двойные " " .
Просто из этого совершенно не следует, что нужно помещать название переменной в кавычки, это скорее даже противоречит всем известным мне языкам.
 

samsonnn

Client
Регистрация
02.06.2015
Сообщения
1 660
Благодарностей
1 335
Баллы
113
Здравствуйте!

Пытаюсь проверять пол из профиля через условный оператор IF, перепробовал уже всё что можно, оператор всегда переходит по ложной ветке.

Пробовал следующие условия:
  • {-Profile.Sex-}
  • {-Profile.Sex-} == True
  • {-Profile.Sex-} == "True"
  • {-Profile.Sex-} == 'True'

Всё равно программа всегда интерпретирует условие как ложное.

Подскажите пожалуйста, как правильно задать условие. Благодарю!
Пробуйте так:

"{-Profile.Sex-}" == "Male"

То есть в нашем варианте проверяем на мужской пол, если по зеленой тогда мужик, если по красной то женский пол. У меня так работает=)
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 614
Благодарностей
4 602
Баллы
113
Пробуйте так:

"{-Profile.Sex-}" == "Male"

То есть в нашем варианте проверяем на мужской пол, если по зеленой тогда мужик, если по красной то женский пол. У меня так работает=)
там хранится либо True либо False
 

samsonnn

Client
Регистрация
02.06.2015
Сообщения
1 660
Благодарностей
1 335
Баллы
113
Последнее редактирование:

doc

Client
Регистрация
30.03.2012
Сообщения
8 614
Благодарностей
4 602
Баллы
113

samsonnn

Client
Регистрация
02.06.2015
Сообщения
1 660
Благодарностей
1 335
Баллы
113

doc

Client
Регистрация
30.03.2012
Сообщения
8 614
Благодарностей
4 602
Баллы
113
Проверил, у меня также. В переменных пишется True. При выводе из сниппета пишется Male. Если делаю оповещение в лог обычной зеновской переменной - пишется True.
Путаница какая-то
 
  • Спасибо
Реакции: samsonnn

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 707
Баллы
113
Проверил, у меня также. В переменных пишется True. При выводе из сниппета пишется Male. Если делаю оповещение в лог обычной зеновской переменной - пишется True.
Путаница какая-то
да) они отличаются) давно так)
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)