Сравнение Math :: BigInt со скалярами в Perl - PullRequest
1 голос
/ 26 июня 2019

В следующем коде проводится сравнение между объектом BigInt и скаляром perl. Хотя это дает правильный вывод, хотел знать а) если это хорошо, чтобы смешать оба. б) скаляр получает повышение до BigInt

use Math::BigInt;
my $a = 11;
my $bInt = Math::BigInt->new("0xa");
print "a = $a";
print "bInt = $bInt\n";

if ($bInt < $a) {
    print "LESS\n";
} else {
    print "EQUAL OR GREATER\n";
}

Output:
a = 11
bInt = 10
LESS

1 Ответ

2 голосов
/ 26 июня 2019

Да, объекты Math :: BigInt перегружают операторы сравнения, что означает, что каждый раз, когда они используются в сравнении, перегрузка будет обрабатывать их должным образом и не изменит собственного значения.Здесь есть еще некоторые подробности: https://perldoc.pl/Math::BigInt#Mixing-different-object-types и, конечно, перегрузка документы подробно описывают.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...