我所知道的它们之间的区别就在下图中。
我无法完全清楚地指出其中两个之间的区别。
特别是,我无法看到加密代码并指出哪一个是
function
,哪一个是method
。
我读到方法会导致状态发生变化,而函数则不会。 什么是
state
?
change in state
到底是什么意思?
例如如果我必须对 nfs 的元数据等进行一些更改,那么它应该归类为函数还是方法? (我想到的方法)
关于将代码任务区分为函数或方法的指南将对我有很大帮助。
我是 DeFi 和区块链技术的初学者,任何上述解释以及用于识别
change vs no change in state
的现实生活示例或代码片段都会对我有很大帮助。
您可以像在面向对象编程中那样考虑函数和方法,其中有类和对象。类提供函数,实例化对象提供方法。由于函数是在类本身上调用的,因此它没有任何可查看/更新的状态。在从类实例化的各个对象上调用方法,并且它可以访问存储在对象状态上的值。
具体来说,在 Scrypto 中,区别在于函数/方法的第一个参数。如果您将
&self
作为第一个参数,它将是一个方法而不是函数,因为您可以通过此 &self
参数访问组件的变量。