Uniswap
{…} 作為函式呼叫的一部分是什麼意思?
swapExactETHForTokens
在Uniswap的函式中是這樣呼叫的:uniswap.swapExactETHForTokens{value: msg.value}( amountOut, path, msg.sender, deadline );
部分
{value: msg.value}
是什麼意思?這真的是正確的合成嗎?意思是,{...}
函式呼叫中的自身。
value
並且函式內部是否不以正常方式接受參數(...)
?
這就是您可以呼叫函式並為其提供值的方式。
價值的概念是指在呼叫過程中發送的乙太幣。該值取自契約餘額。如果你想發送 Ether,你不能在 Solidity中將值作為正常參數提供
()
,而不僅僅是一些uint
恰好被呼叫的參數value
。這是一個例子。如果呼叫
demo
(記得在呼叫函式時包含值,否則合約沒有任何值可以轉發),some
函式呼叫不會轉發任何值。但other
呼叫前轉6 位。另請注意,需要聲明函式payable
才能接收值。contract A { function demo() public payable { B inst = new B(); inst.some(5); inst.other{value: 6}(); } } contract B { uint private _value; function some(uint value) public { _value = value; } function other() payable public { } }
您可以在此處查看例如語法:https ://docs.soliditylang.org/en/latest/control-structures.html#external-function-calls