コマンドライン引数をflagで処理する
入力ファイルをos.Args[1]で取得していたので、引数指定しないと範囲外アクセスでpanicしていた。 flagパッケージ使ってflag.Arg(0)で取得するようにしたので、引数指定しなかった場合にはファイルなしエラーで終わるようになった。 もっと親切にするなら、エラー終了ではなくヘルプ表示にする Read more
POSTS
入力ファイルをos.Args[1]で取得していたので、引数指定しないと範囲外アクセスでpanicしていた。 flagパッケージ使ってflag.Arg(0)で取得するようにしたので、引数指定しなかった場合にはファイルなしエラーで終わるようになった。 もっと親切にするなら、エラー終了ではなくヘルプ表示にする Read more
EOTとかbyteのスライスをconstで定義しようとしてできなかった。 const EOT = []byte{0x00, 0xFF, 0x2F, 0x00} $ go run cmd/mdmml/main.go # github.com/umemak/mdmml ./mdmml.go:10:7: const initializer []byte{...} is not a constant The Go Programming Language Specification - The Go Programming Language 文字列リテラルが許されるならbyteスライスも許されてもよいではないかと思ったけれど、ダメらしい。 varで我慢する。
MDMMLのループバグ、デバッグが面倒だったのでループの展開だけ前処理に分けることにした。 これだと文字列の状態でテストできるので、16進数より見やすい。 たぶん直ったと思う。
Inspironクリーンインストールした後、Dockerのセットアップしてなかったの忘れていて、せっかくなのでRancher Desktopを試してみることにした。 公式ページからWindows用のインストーラーをダウンロードして実行。 起動時に聞かれるContainer Runtimeはdockerdを選 Read more
ループと休符の組み合わせで、休符が消える現象が起きてる気がする。 後から実装したところはちょっと入り組んでしまっているね。。
リファクタリングしてモジュール性とエラー処理を向上させる - The Rust Programming Language 日本語版 を写経していて、コンパイルエラーに遭遇した。 $ cargo run Compiling mdmml_rust v0.1.0 (mdmml_rust) error[E0782]: trait objects must include the `dyn` keyword --> src/main.rs:21:41 | 21 | fn run(config: Config)-> Result<(), Box<Error>> { | ^^^^^ | help: add `dyn` keyword before this trait | 21 - fn run(config: Config)-> Result<(), Box<Error>> { 21 + fn run(config: Config)-> Result<(), Box<dyn Error>> { | For more information about this error, try `rustc --explain E0782`. error: could not compile `mdmml_rust` due to previous error 修正方法も提示してくれて親切。 で、 Read more
コードフォーマッターが欲しいと思って、プラグインを入れたけれど動かない。 Couldn't start client Rust Language Server --- Rustup not available. Install from https://www.rustup.rs/ どうやらツールが足りないようなので、追加でインストールした。 $ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh $ source $HOME/.cargo/env $ rustup --version rustup 1.24.3 (ce5817a94 2021-05-31) info: This is the version for the rustup toolchain manager, not the rustc compiler. info: The currently active `rustc` version is `rustc 1.59.0 (9d1b2106e 2022-02-23)` それでもエラーが解消しなかったので、OSごと再起動した Read more
リファクタリングしてモジュール性とエラー処理を向上させる - The Rust Programming Language 日本語版 を読みながら。 ちょっと分量多いけど、この第12章をひととおりなぞれば、Rustを「完全に理解」できる気がする。