2015-02-02 16 views
6

Một cách tôi biết là để cung cấp các chú thích gõ Rust là bằng cách tuyên bố một biến trung gian để trình biên dịch biết kiểu trả về:Làm cách nào để cung cấp chú thích loại nội tuyến khi gọi một hàm không chung chung?

use std::num::Int 
let max_usize: usize = Int::max_value(); 
println!("Max usize: {}", max_usize); 

Nhưng làm thế nào tôi có thể cung cấp các loại chú thích "inline"?

Ví dụ, tôi không mong đợi những điều sau đây để làm việc chưa sửa đổi vì không có chú thích kiểu nào cả, nhưng đây là loại điều tôi sau:

use std::num::Int 
println!("Max usize: {}", Int::max_value()); 

tôi đã cố gắng Int::max_value::<usize>(), mang đến cho error: too many type parameters provided: expected at most 0 parameter(s), found 1 parameter(s) - và điều đó có ý nghĩa vì max_value() không phải là chung chung.

Trong Scala Tôi sẽ viết myFunction(someDog: Animal) thay vì viết

val someAnimal: Animal = someDog 
myFunction(someAnimal) 

Có cú pháp tương đương trong Rust?

Trả lời

4

Giống như vậy:

fn main() { 
    use std::num::Int; 
    println!("Max usize: {}", <usize as Int>::max_value()); 
} 
Các vấn đề liên quan