【发布时间】:2021-04-14 23:21:23
【问题描述】:
是否有会截断类似字符串的类型的格式说明符?我有一个不是字符串的类型,但确实实现了显示。不过,我想将其限制为 7 个字符,而我知道如何做到这一点的唯一方法是先将其转换为字符串。
let sha1 = format!("{}", branch.commit_id);
let formatted = format!("{} ({})\n", branch.name, &sha1[0..7]));
是否有一些格式说明符可以让我一步完成?比如:
let formatted = format!("{} ({<something 7>})\n", branch.name, branch.commit_id);
不幸的是,因为它不是一个字符串,我不能只做&branch.commit_id[0..7],这就是为什么我希望有一个格式说明符语法。
【问题讨论】:
-
&branch.fommit_id.to_string()[0..7]怎么样? -
@Aplet123 你没有阅读问题
-
AFAIK,没有格式说明符主要只对std中的数字实现,没有人在自己的显示实现中这样做。我可以想出一些诡计,但我认为它不值得。
-
@Aplet123 我的类型没有
to_string()方法。这是一个git2::Oid。据我所知,将其强制转换为字符串的最简单方法是使用format!,因为它确实实现了Display。 -
任何拥有
Display的东西都可以通过一揽子实施免费获得ToString。
标签: rust