刚开始学习,有一个简单的问题想请教:
函数名可以直接绑定给一个变量,好像是经过类型转换,绑定给一个函数指针。
let funp:fn() = main;
let funp:fn(String) -> _ = String::from;
而运算符好像不行,报错:
let funp:fn(i32) -> _ = (+);
error: expected expression, found `+`
--> src/main.rs:56:30
|
56 | let funp:fn(i32) -> _ = (+);
| ^ expected expression
另外,运算符应该有类型吧,如果想打印一个运算符的类型,有什么方法吗。除了println!("{}", std::any::type_name::()) 。 repl 中有相关命令吗?
1
共 4 条评论, 1 页
评论区
写评论嗯,之前确实学过一段时间。
--
👇
Bai-Jinlin: 一看就是学过Haskell
嗯,感谢热心解答。原意是想知道运算符,有没有类似haskell那样,查看运算符的类型,比如:
不过,根据答案里的链接,可以从运算符重载的文档中找到重载后函数的类型。 感谢热心且有理有据的回答。
--
👇
苦瓜小仔: 运算符属于 rustc 的内置类型。
Rust 没有 repl。
Rust 靠 trait 重载运算符。
运算符属于 rustc 的内置类型。
Rust 没有 repl。
Rust 靠 trait 重载运算符。
一看就是学过Haskell