# Solidity函数选择器

By [石小龙](https://paragraph.com/@0x994cd38723375a0eb0d55fcbc1e2a862fd49d007) · 2024-11-19

---

        function afterSwap(address, PoolKey calldata key, IPoolManager.SwapParams calldata, BalanceDelta, bytes calldata)
            external
            override
            returns (bytes4, int128)
        {
            afterSwapCount[key.toId()]++;
            return (BaseHook.afterSwap.selector, 0);
        }
    

*   `BaseHook.afterSwap.selector` 这个部分就是函数选择器，其定位的就是这个函数`afterSwap` 的签名；
    
*   返回的是Types4类型的数据，这里这么定义返回值是BaseHook强制调用的；
    
*   使用场景
    
    *   call
        
    *   delegatecall
        
    *   Uniswap V4 的Hook

---

*Originally published on [石小龙](https://paragraph.com/@0x994cd38723375a0eb0d55fcbc1e2a862fd49d007/solidity-2)*
