Rust - 接口设计建议之灵活(flexible)

打印 上一主题 下一主题

主题 917|帖子 917|积分 2751

Rust - 接口设计建议之灵活(flexible)

灵活(flexible)

代码的契约(Contract)


  • 你写的代码包含契约
  • 契约:

    • 要求:代码使用的限制
    • 承诺:代码使用的保证

  • 设计接口时(经验法则):

    • 避免施加不必要的限制,只做能够兑现的承诺

      • 增加限制 或 取消承诺:

        • 重大的语义版本更改
        • 可导致其他代码出问题

      • 放宽限制 或 提供额外的承诺:

        • 通常是向后兼容的



限制(Restrictions)与承诺(Promises)

<ul>Rust中,限制的常见形式:

  • Trait 约束(Trait Bound)
  • 参数类型(Argument Types)
承诺的常见形式:

  • Trait 的实现
  • 返回类型
fn frobnicate1(s: String) -> String

  • 契约:调用者进行内存分配,承诺返回拥有的 String -> 无法改为 “无需内存分配” 的函数
fn frobnicate2(s: &str) -> Cow
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

吴旭华

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表