[решено] Стандартный метод определения кодов операций в func?
-
Здравствуйте, я изучал различные репозитории и заметил несоответствия в том, как определяются коды операций. Например, в реализации ft и nft в репозитории токен-контрактов коды операций определяются следующим образом:
int op::transfer() asm "0x5fcc3d14 PUSHINT";
Однако в хранилище ликвидных контрактов с размещением ставок определение совершенно иное:
const int op::nft_transfer = 0x5fcc3d14;
Хотя я понимаю, что это, по сути, одно и то же, мне любопытно узнать о более общепринятом или стандартном методе определения кодов операций в func
Кроме того, я заметил, что реализация ft и nft в репозитории токен-контрактов может быть устаревшей. Он использует
builder_null
изstdlib.fc
в этом репозитории, ноstdlib.fc
в официальной документации его не содержит.Не мог бы кто-нибудь прояснить мне эти моменты?
-
В более новых версиях компилятора FunC добавлена поддержка
const
, поэтому во вновь написанном коде вы можете использовать эту функцию или использовать старый подход. Поддерживаются оба варианта.Способ определения константы
const
аналогичен другим языкам программирования, поэтому он может облегчить понимание вашего кода читателями. -
Спасибо вам за разъяснение!
Кроме того, я думаю, что стандартная реализация nft должна быть обновлена. В настоящее время она использует builder_null?, которого больше нет в stdlib, и определяет коды операций с использованием устаревшего метода. Это может сбивать с толку, особенно для новичков в языке