Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Показано с 1 по 6 из 6
  1. #1
    Аватар для geneff
    Пользователь

    Статус
    Оффлайн
    Регистрация
    03.07.2017
    Сообщений
    44
    Репутация:
    5 ±

    Что значит такой тег "_:"?

    Здравствуйте. Не давно увидел для себя новый "символ" _: хотелось бы узнать что это такое и где его нужно применять.

  2. #2
    Аватар для Geebrox
    Пользователь

    Статус
    Оффлайн
    Регистрация
    24.08.2015
    Адрес
    Ташкент
    Сообщений
    375
    Репутация:
    97 ±
    _: - убирает тег, например ты хочешь сравнить целочисленный переменный с вещественным, но компилятор "орёт" тебе предупреждением о тегах. Вот убрав у вещественного переменного тег, ты можешь сравнить его с целочисленным, который не имеет никакого тега (исправьте, если я не прав)

    1. new
    2. Float:var_1 = 100.12345,
    3. var_2 = 100;
    4.  
    5. SomeFunc()
    6. {
    7. if(_:var_1 == var_2)
    8. {
    9. print("Hello World!");
    10. }
    11. }
    Респект:
    @DeimoS
    @ziggi
    @Daniel_Cortez

  3. Пользователь сказал cпасибо:
    geneff (02.06.2018)
  4. #3
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Цитата Сообщение от Geebrox Посмотреть сообщение
    _: - убирает тег, например ты хочешь сравнить целочисленный переменный с вещественным, но компилятор "орёт" тебе предупреждением о тегах. Вот убрав у вещественного переменного тег, ты можешь сравнить его с целочисленным, который не имеет никакого тега (исправьте, если я не прав)

    1. new
    2. Float:var_1 = 100.12345,
    3. var_2 = 100;
    4.  
    5. SomeFunc()
    6. {
    7. if(_:var_1 == var_2)
    8. {
    9. print("Hello World!");
    10. }
    11. }
    Поправочка: это не убирает тег, а наоборот присваивает. Сути это, конечно, не меняет, просто стоит понимать, что в Pawn у всех переменных всегда имеется тег и "_:" является "тегом по умолчанию".
    И да, автор. Стоит сразу заметить, что повсеместно так сравнивать целочисленные и вещественные числа не стоит :) Считай это просто примером и не более.
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  5. Пользователь сказал cпасибо:
    geneff (02.06.2018)
  6. #4
    Аватар для geneff
    Пользователь

    Статус
    Оффлайн
    Регистрация
    03.07.2017
    Сообщений
    44
    Репутация:
    5 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    Поправочка: это не убирает тег, а наоборот присваивает. Сути это, конечно, не меняет, просто стоит понимать, что в Pawn у всех переменных всегда имеется тег и "_:" является "тегом по умолчанию".
    И да, автор. Стоит сразу заметить, что повсеместно так сравнивать целочисленные и вещественные числа не стоит :) Считай это просто примером и не более.
    Ну вот смотрите какая у меня проблемка...
    PHP код:
    enum E_DIALOG_INFO
    {
        
    d_Null,            
        
    d_RegisterPass,                    
        
    d_RegisterAge
    }
    stock ShowPlayerRegister(playeriddialogid)
    {
        switch(
    dialogid)
        {
            case 
    d_RegisterPass:
            {
                
    ShowPlayerDialog(playeriddialogidDIALOG_STYLE_INPUT" "" "" "" ");
            } 
        }
        return 
    1;

    И тут я ловлю варнинг
    PHP код:
    warning 213tag mismatchexpected tag none ("_"), but found "E_DIALOG_INFO" 
    Для себя нашел решение сделать так, верным ли оно будет? -_-
    PHP код:
    _:E_DIALOG_INFO 

  7. #5
    Аватар для Daniel_Cortez
    "Это не хак, это фича"

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    2,192
    Репутация:
    2589 ±
    Цитата Сообщение от geneff Посмотреть сообщение
    Для себя нашел решение сделать так, верным ли оно будет? -_-
    PHP код:
    _:E_DIALOG_INFO 
    Так может сначала не нужно было делать перечисление E_DIALOG_INFO именованным?
    Чем вам не угодил такой вариант?
    1. enum
    2. {
    3. DIALOG_NONE,
    4. DIALOG_REG_PASSWORD,
    5. DIALOG_REG_AGE
    6. };
    Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).

  8. Пользователь сказал cпасибо:
    geneff (02.06.2018)
  9. #6
    Аватар для geneff
    Пользователь

    Статус
    Оффлайн
    Регистрация
    03.07.2017
    Сообщений
    44
    Репутация:
    5 ±
    Цитата Сообщение от Daniel_Cortez Посмотреть сообщение
    Так может сначала не нужно было делать перечисление E_DIALOG_INFO именованным?
    Чем вам не угодил такой вариант?
    1. enum
    2. {
    3. DIALOG_NONE,
    4. DIALOG_REG_PASSWORD,
    5. DIALOG_REG_AGE
    6. };
    Честно говоря, я никогда такого не делал, просто что-то в этот раз мне приспичило это сделать. Уберу, как вы и посоветовали. Спасибо всем за ответы!

 

 

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

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