gpt4 book ai didi

rust - 仅导入一种类型的单个方法的语法是什么?

转载 作者:行者123 更新时间:2023-11-29 08:12:04 24 4
gpt4 key购买 nike

我如何只提取Duration 而不是*?是否可以只拉出seconds

use chrono::*; 

// Returns a Utc DateTime one billion seconds after start.
pub fn after(start: DateTime<Utc>) -> DateTime<Utc> {
start + Duration::seconds(1000000000)
}

最佳答案

没有办法只导入一个类型的方法。注意 Duration::seconds 不是一个方法——它是一个 associated function .您也不能直接导入这些。

如果您真的想要这样的东西,我看到两个选择:

  1. 新的委派功能

    fn seconds(x: i64) -> chrono::Duration {
    chrono::Duration::seconds(x)
    }

    这简单明了。

  2. 静态函数指针

    可以Duration::seconds 绑定(bind)到静态函数指针:

    static seconds: fn(i64) -> chrono::Duration = chrono::Duration::seconds;

    这会产生警告,因为静态名称应该是大写的。我不会做这样的事。


请重新阅读The Rust Programming Language标题为 The Module System to Control Scope and Privacy 的章节.在了解 glob operator 的语法之前,您必须阅读许多部分。 .这些部分回答了您的第一个问题:

use chrono::Duration; 

您键入 items 的名称你想导入。可进口元素包括:

  • 一个模块
  • 一个函数
  • 类型别名
  • 一个结构
  • 枚举
  • 工会
  • 一个常数
  • 静态
  • 特质

关于rust - 仅导入一种类型的单个方法的语法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54965252/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com