Rust中函数前的括号是什么?

问题描述 投票:0回答:1

函数声明中括号的作用是什么。例如,以下内容之间有什么区别:

/// without brackets
pub fn new_with_now(now: T) -> SomeType

/// with brackets
pub fn new_with_now<T: Now>(now: T) -> SomeType
rust
1个回答
5
投票

答案在文档中:Generics

类型参数通过使用尖括号指定为通用和上骆驼案: “通用类型参数”是通常表示为。在Rust中,“泛型”还描述了任何接受一个或多个通用类型参数的东西。任何指定为泛型类型参数的类型是泛型,并且所有内容其他是具体的(非通用)。

您的第二个定义是对T的类型限制,要求实现Now(无论如何)。反过来,在幕后,编译器将为使用的每个new_with_now生成struct的变体,该变体实现Now并在任何给定点调用此函数。

© www.soinside.com 2019 - 2024. All rights reserved.