🦀
Rust の黄色い波線 ( is never used ) に悩まされているあなたへ,あとモジュールについて
何があったか
- コードが黄色い波線まみれ
- cargo run すると何もかもが is never used と error を吐く
そこで
- 「rust is never used」と検索した
すると
- 海外のサイトが見つかった
参考文献
How to suppress "function is never used" warning for a function used by tests?
これを読んで察したこと
- というより Google Translate にかけた.だってそうしないと私みたいな英語読めない人はエラー吐きっぱなしじゃん……
- それもそうだしコード見てもらった方が早いわね
実際のコード
- コメント残してます
mod sample_constant; // 別ファイル参照
use crate::sample_constant::{DEG, X, Y, Z}; // 別ファイルからの値の引用
const PI: f64 = 3.14;
const RAD: f64 = DEG / 180. * PI;
#[allow(dead_code)] // constant `` is never used の解消
fn main() { // main fn の中にないと異名関数は動作しない
fn rotate2dim() {
このコードの中では,mod 「ファイル名」 で別のファイルを参照しています.
module の略語であり,参照するときはこれをやります.
use crate::「ファイル名」::{値, 値};
で別のファイルから値を引用できます.
ちなみになんですけど,この use crate という指示は別ファイル内で
pub(crate) const
としてあげた値のみ引用できます!重要ポイントでしたね.
本日のキーポイント 黄色い波線を消す
#[allow(dead_code)]
これは,まあ見てわかりそうだけど要するにグエーとなっちゃってるコードを無視して動かすよ,というブラックな指令になります.
まるで法で定められた残業時間を無視する企業みたいですね!
このコードに関してではないけど,もっと細かいことを言うと,180. の . がないだけで謎の動かなさをやっていったりします.なんだそれ!
誰かなんでか教えてほしい……けど多分自分で調べるかも……いやどっちやねん……
まとめ
- Rust でコードが黄色い波線ばかりの場合
- 一旦 #[allow(dead_code)] と fn main() { の上に書いてあげる
- すると,is never used の error は消える.
以上
だけどこれ本番的に動いてくれないんだよな……いいのかな……いや動いて……
これ以外の解答あればコメントお待ちしてます.
Discussion
色々コメントありがとうございます!励みにさせていただいて,今後も Rust 頑張ります!