Подпишись на канал фаундера и разработчика экосистемы tonpie
Что является более эффективным для этого 2-го типа кода в FunC?
-
Случай 1:
() recv_internal(int my_balance, int msg_value, cell in_msg_full, slice in_msg_body) impure { slice cs = in_msg_full.begin_parse(); int flags = cs~load_uint(4); if ((flags & 1) | (in_msg_body.slice_empty?())) { return (); } slice sender = cs~load_msg_addr(); int op = in_msg_body~load_uint(32); ;; (int op, int query_id) = (in_msg_body~load_uint(32), in_msg_body~load_uint(64)); if (op == op::claim) { query_id = in_msg_body~load_uint(64); ;; .....code..... ;; } elseif (op == op::process_claim) { query_id = in_msg_body~load_uint(64); ;; .....code..... ;; } }
Случай 2:
() recv_internal(int my_balance, int msg_value, cell in_msg_full, slice in_msg_body) impure { slice cs = in_msg_full.begin_parse(); int flags = cs~load_uint(4); if ((flags & 1) | (in_msg_body.slice_empty?())) { return (); } slice sender = cs~load_msg_addr(); ;; int op = in_msg_body~load_uint(32); (int op, int query_id) = (in_msg_body~load_uint(32), in_msg_body~load_uint(64)); if (op == op::claim) { ;; query_id = in_msg_body~load_uint(64); ;; .....code..... ;; } elseif (op == op::process_claim) { ;; query_id = in_msg_body~load_uint(64); ;; .....code..... ;; } }
Как вы можете видеть, разница заключается только в вызове
query_id = in_msg_body~load_uint(64)
сначала или внутри методаif
. Должны ли мы обратить внимание на эффективность использования газа в данный момент?