首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Address.transfer(数量);这是什么意思?谁是接受者?

Address.transfer(数量);这是什么意思?谁是接受者?
EN

Ethereum用户
提问于 2018-01-26 02:14:13
回答 1查看 5.7K关注 0票数 3

从昨天起,我一直在学习稳健。

有一件事让我很困惑。

代码语言:javascript
复制
address someone = msg.sender;
someone.transfer(10);

如果你看上面的代码。太模棱两可了。

有人把10醚送到X,谁是X?它没有在代码中指定。

EN

回答 1

Ethereum用户

回答已采纳

发布于 2018-01-26 02:30:28

代码语言:javascript
复制
address someone = msg.sender;
someone.transfer(10);

msg.sender是指事务/呼叫的发送方。

address someone = msg.sender;意味着我们将发送者地址存储在某人变量中。

someone.transfer(10); --这相当于msg.sender.transfer(10),此函数允许将10醚从智能协议发送到发件人地址。

编辑以获得解释:

智能契约与“正常”地址并没有太大的不同。它只需要做更多的事情(在代码中允许它做的事情)。因此,智能契约可以拥有以太(更准确地说,它们的地址可以),并且它们的行为可以像普通地址一样。因此,智能合同可以将以太发送到地址并接收以太。但是,当智能契约接收到以太时,您可以告诉它做更多的事情,检查关键字payable以获得更多信息。

要回答评论中的问题:不,这并不意味着聪明的合同所有者(1)发送以太,而是合同本身,从自己的以太平衡。

(1)如果这是合理的话。合同本身并没有所有者。这个概念只存在于合同的代码中。

个人注意:但是,我不明白为什么要将msg.sender地址复制到一个变量中。优化在稳固性中非常重要,所以使用msg.sender,不要将它存储在任何地方:)

票数 8
EN
页面原文内容由Ethereum提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://ethereum.stackexchange.com/questions/37534

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档