3分钟Solidity: 7.1 汇编变量

31 阅读1分钟

欢迎订阅专栏3分钟Solidity--智能合约--Web3区块链技术必学

如需获取本内容的最新版本,请参见 Cyfrin.io 上的汇编变量(代码示例)

在 Solidity 中用于内联汇编的语言被称为 Yul,一个内联汇编块由 assembly { ... } 标记的,其中大括号内的代码是 Yul 语言中的代码。

关于Yul语言想了解更多,请见3分钟Solidity: 7.6 Yul语言简介

您可以用接近Ethereum虚拟机的语言,将Solidity语句与内联汇编交错使用。 这给了您更精细的控制,这在您通过编写库来增强语言时特别有用。

内联汇编代码可以访问本地 Solidity 变量。

不同的内联汇编块不共享名称空间, 即不能调用或访问一个在不同内联汇编块中定义的Yul函数或变量。

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.26;

contract AssemblyVariable {
    function yul_let() public pure returns (uint256 z) {
        assembly {
            // 用于汇编的语言称为Yul
            // 局部变量
            let x := 123
            z := 456
        }
    }
}

Remix Lite 尝试一下

image.png

END