E1002#
未使用的变量。
这个变量未被代码的其他部分使用,也没有标记 pub
可见性。
请注意,这个警告可能会揭示你代码中的其他错误。例如,如果你的代码库中有两个变量名称相似,你可能会错误地使用另一个变量。
具体来说,如果变量是在顶层,并且模块的主体包含副作用,则这些副作用将不会发生。
错误示例#
let p : Int = {
// ^ Warning: Unused toplevel variable 'p'.
// Note if the body contains side effect, it will not happen.
// Use `fn init { .. }` to wrap the effect.
println("Side effect")
42
}
fn main {
let x = 42 // Warning: Unused variable 'x'
}
建议#
有几种方式可以修复这个警告:
如果这个变量确实没有用,你可以移除变量的定义。
如果这个变量是在顶层(即不是局部的),并且是你模块的公开 API 的一部分,你可以给变量添加
pub
关键字。pub let p = 42
如果你在变量名上犯了拼写错误,你可以在使用的地方将变量重命名为正确的名字。
如果你的代码依赖于变量的副作用,你可以将副作用包装在
fn init
块中。fn init { println("Side effect") }
在某些情况下,你可能想要保持变量为私有且同时不使用。在这种情况下,你可以对该变量调用 ignore()
以强制使用它。
let p : Int = {
println("Side effect")
42
}
fn init {
ignore(p)
}
fn main {
let x = 42
ignore(x)
}