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