これが私のコードで、これは機能します:
extern crate redis;
// connect to redis
fn establish_connection() -> redis::Connection {
let client = redis::Client::open("redis://ip:port/0").unwrap();
client.get_connection().unwrap()
}
fn main() {
let con : redis::Connection = establish_connection();
let _ : () = redis::cmd("RANDOMKEY").query(&con).unwrap();
}
しかし、これは機能しません:
//...
fn main() {
let con : redis::Connection = establish_connection();
redis::cmd("RANDOMKEY").query(&con).unwrap();
}
コンパイル中にエラーが発生します。
error: unable to infer enough type information about `_`; type annotations or generic parameter binding required [E0282]
redis::cmd("FLUSHALL").query(&con).unwrap();
^~~~~
help: run `rustc --explain E0282` to see a detailed explanation
私は書く必要がありますlet _ : () = ...
か?どうすれば削除できますか?
redis::Cmd::query
と定義されている:
fn query<T: FromRedisValue>(&self, con: &ConnectionLike) -> RedisResult<T>
の値に注釈を付けるのと同じ動作を得るには、T
ここを作成する必要があります。これは機能するはずです:()
query(...).unwrap()
T
redis::cmd("RANDOMKEY").query::<()>(&con).unwrap();
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加