PDA

Просмотр полной версии : [Вопрос] Что значит такой тег "_:"?



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

Geebrox
02.06.2018, 02:46
_: - убирает тег, например ты хочешь сравнить целочисленный переменный с вещественным, но компилятор "орёт" тебе предупреждением о тегах. Вот убрав у вещественного переменного тег, ты можешь сравнить его с целочисленным, который не имеет никакого тега (исправьте, если я не прав)


new
Float:var_1 = 100.12345,
var_2 = 100;

SomeFunc()
{
if(_:var_1 == var_2)
{
print("Hello World!");
}
}

DeimoS
02.06.2018, 12:58
_: - убирает тег, например ты хочешь сравнить целочисленный переменный с вещественным, но компилятор "орёт" тебе предупреждением о тегах. Вот убрав у вещественного переменного тег, ты можешь сравнить его с целочисленным, который не имеет никакого тега (исправьте, если я не прав)


new
Float:var_1 = 100.12345,
var_2 = 100;

SomeFunc()
{
if(_:var_1 == var_2)
{
print("Hello World!");
}
}

Поправочка: это не убирает тег, а наоборот присваивает. Сути это, конечно, не меняет, просто стоит понимать, что в Pawn у всех переменных всегда имеется тег и "_:" является "тегом по умолчанию".
И да, автор. Стоит сразу заметить, что повсеместно так сравнивать целочисленные и вещественные числа не стоит :) Считай это просто примером и не более.

geneff
02.06.2018, 13:15
Поправочка: это не убирает тег, а наоборот присваивает. Сути это, конечно, не меняет, просто стоит понимать, что в Pawn у всех переменных всегда имеется тег и "_:" является "тегом по умолчанию".
И да, автор. Стоит сразу заметить, что повсеместно так сравнивать целочисленные и вещественные числа не стоит :) Считай это просто примером и не более.

Ну вот смотрите какая у меня проблемка...

enum E_DIALOG_INFO
{
d_Null,
d_RegisterPass,
d_RegisterAge
}
stock ShowPlayerRegister(playerid, dialogid)
{
switch(dialogid)
{
case d_RegisterPass:
{
ShowPlayerDialog(playerid, dialogid, DIALOG_STYLE_INPUT, " ", " ", " ", " ");
}
}
return 1;
}

И тут я ловлю варнинг

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

_:E_DIALOG_INFO

Daniel_Cortez
02.06.2018, 15:09
Для себя нашел решение сделать так, верным ли оно будет? -_-

_:E_DIALOG_INFO
Так может сначала не нужно было делать перечисление E_DIALOG_INFO именованным?
Чем вам не угодил такой вариант?

enum
{
DIALOG_NONE,
DIALOG_REG_PASSWORD,
DIALOG_REG_AGE
};

geneff
02.06.2018, 15:23
Так может сначала не нужно было делать перечисление E_DIALOG_INFO именованным?
Чем вам не угодил такой вариант?

enum
{
DIALOG_NONE,
DIALOG_REG_PASSWORD,
DIALOG_REG_AGE
};


Честно говоря, я никогда такого не делал, просто что-то в этот раз мне приспичило это сделать. Уберу, как вы и посоветовали. Спасибо всем за ответы!