Cadence 编程语言通过引入资源和功能来加速和简化安全智能合约编程,支持资源嵌套和组合等高级用例。同时 Cadence 也支持 Flow 上的事务和查询。
通过资源管理所有权
Cadence 很容易学习,因为它与 Rust、TypeScript 和 Swift 等其他编程语言有许多相似之处。最大的区别在于Cadence 总是资源第一。
资源很容易理解,因为它们是真实的东西 —— 一个代币的金库,一个 NBA Topshot 瞬间而且它们存储在所有者的帐户中。这就是为什么 Cadence 代码易于阅读、维护和讨论的原因。
pub resource NFT {
pub let id: UInt64
pub var metadata: {String: String}
...
}
从技术的角度来说,资源类型类似于类 —— 它们表示数据和函数的集合。但它们对开发人员如何处理它们引入了严格的规则:
-
资源在同一时间只能存在于一个确切的位置
-
资源无法被复制
-
资源必须被明确的销毁
这可以防止资源的有害复制和意外删除ÿ