🦀

Rust の黄色い波線 ( is never used ) に悩まされているあなたへ,あとモジュールについて

2023/12/21に公開1

何があったか

  • コードが黄色い波線まみれ
  • 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

Yoshitaka NaraokaYoshitaka Naraoka

色々コメントありがとうございます!励みにさせていただいて,今後も Rust 頑張ります!