error[E0121]: the placeholder `_` is not allowed within types on item signatures for return types
error[E0121]: the placeholder `_` is not allowed within types on item signatures for constants
error[E0121]: the placeholder `_` is not allowed within types on item signatures for static variables
型推論の未対応箇所で '_
' を使おうとした。
『型推論の未対応箇所』では型推論の未対応箇所を紹介している。
それらの箇所で '_
' を使ってしまうとエラーになる。
関数の返値型において、'_
' で型推論しようとした。
以下では、'_
' で関数 func
の返値型を型推論している。
fn func() -> _ {
true
}
error[E0121]: the placeholder `_` is not allowed within types on item signatures for return types --> src\lib.rs:1:14 | 1 | fn func() -> _ { | ^ | | | not allowed in type signatures | help: replace with the correct return type: `bool`
以下のように型を明示するとよい。
fn func() -> bool {
true
}
const
や static
での型推論 (通常型)
const
または static
のアイテムにおいて、'_
' で通常の型を型推論しようとした。
以下では、'_
' で型 Option<T>
の型パラメタ T
を型推論している。
pub static OPT: Option<_> = Some(false);
error[E0121]: the placeholder `_` is not allowed within types on item signatures for static variables --> src\lib.rs:1:24 | 1 | pub static OPT: Option<_> = Some(false); | ^ not allowed in type signatures | help: replace this with a fully-specified type | 1 - pub static OPT: Option<_> = Some(false); 1 + pub static OPT: Option<bool> = Some(false); |
以下のように型を明示するとよい。
pub static OPT: Option<bool> = Some(false);
const
や static
での型推論 (要素数)
const
または static
のアイテムにおいて、'_
' で配列の要素数を型推論しようとした。
以下では、'_
' で型 [bool; N]
の型パラメタ N
を型推論している。
pub const ARR: [bool; _] = [false, false, true];
error[E0121]: the placeholder `_` is not allowed within types on item signatures for constants --> src\lib.rs:1:23 | 1 | pub const ARR: [bool; _] = [false, false, true]; | ^ not allowed in type signatures | help: replace this with a fully-specified type | 1 - pub const ARR: [bool; _] = [false, false, true]; 1 + pub const ARR: [bool; 3] = [false, false, true]; |
以下のように要素数を明示するとよい。
pub static ARR: [bool; 3] = [false, false, true];