Rust 程序设计语言 简体中文版 1.85.0
对象中的指针来知晓需要调用哪个方法。这种查找会带来在静态分发中不会产生的运行时开 销。动态分发也阻止编译器有选择地内联方法代码,这会相应地禁用一些优化,Rust 还定义 了一些规则,称为 dyn 兼容性(dyn compatibility),用于规定可以和不可以在哪些地方使用 动态分发。这些规则超出了本讨论范围,但你可以在参考资料中详细了解。尽管在编写示例 18-5 和可以支持示例 18-9 中的 approve 方法增加默认实现;然而这样做行不通:当将 State 用作 trait 对象时,trait 并不知道 self 具体是什么类型,因此无法在编译时确定返回类型。(这是 前面提到的 dyn 兼容性规则之一。) 另一个重复是 Post 中 request_review 和 approve 这两个类似的实现。它们都会对 Post 的 state 字段调用 Option::take,如果 state 2024。 本书基于 Rust 2024 edition 惯用法编写。 Cargo.toml 中的 edition 字段表明代码应该使用哪个版本编译。如果该字段不存在,其默认 为 2015 以提供后向兼容性。 每个项目都可以选择不同于默认的 2015 edition 的版本。这样,版本可能会包含不兼容的修 改,比如新增关键字可能会与代码中的标识符冲突并导致错误。不过除非选择兼容这些修改, (旧)代码仍将能够编译,即便升级了0 码力 | 562 页 | 3.23 MB | 9 天前3Tornado 6.5 Documentation
attributes of tornado.options.options: # myapp/db.py from tornado.options import define, options define("mysql_host", default="127.0.0.1:3306", help="Main user DB") define("memcache_hosts", default="127.0.0.1:11011" multiple=True, help="Main user memcache servers") def connect(): db = database.Connection(options.mysql_host) ... # myapp/server.py from tornado.options import define, options define("port", default=8080 docs of this module): 154 Chapter 6. DocumentationTornado Documentation, Release 6.5.1 port = 80 mysql_host = 'mydb.example.com:3306' # Both lists and comma-separated strings are allowed for # multiple=True0 码力 | 272 页 | 1.12 MB | 2 月前3Tornado 6.5 Documentation
of tornado.options.options: # myapp/db.py from tornado.options import define, options define("mysql_host", default="127.0.0.1:3306", help="Main user DB") define("memcache_hosts", default="127.0.0.1:11011" help="Main user memcache servers") def connect(): db = database.Connection(options.mysql_host) ... # myapp/server.py from tornado.options import define, options define("port", default=8080 parse_command_line) Example (using the options defined in the top-level docs of this module): port = 80 mysql_host = 'mydb.example.com:3306' # Both lists and comma-separated strings are allowed for # multiple=True0 码力 | 437 页 | 405.14 KB | 2 月前3
共 3 条
- 1