【続き】V言語でBashの引数解析をする

Shell Script

こんにちは、山田ハヤオです。先日、以下のような記事を投稿しました。

今回はその記事の続きです。

前回はBash 5.xの機能をフル活用してBashだけで引数解析を行いました。

そして今度は、上の記事で作成したparseopt関数をV言語で書き直してみます。

スポンサーリンク

V言語についてと動機

V言語はGoLangに触発されて開発された、C言語にコンパイル可能な静的型付け言語です。

公式サイトはこちら:https://github.com/vlang/v

いろいろ利点があるらしいですが、個人的に良いと思ったのは

  • コンパイルが早い
  • 学習コストが低い
  • 安全
  • ウェブからOSカーネルまで幅広く使える

と、夢のような言語です。

もともと、Fascode内でとあるプロジェクトを始めようということになり、技術選定の結果選ばれた言語でした。そのときに初めて存在を知り、公式ドキュメントを見ながら勉強をしています。

と、偉そうに言っていますがまだ勉強を初めて3日目です。

ポインタやアドレスなどの面倒でよくわからんことを気にせず書ける良い言語です。

V言語は一時期話題になったらしいのですが、本格的に使っている人が少なく、ドキュメントが少ないです。

日本語情報はまじで数件しかありません。ライブラリの細かい使い方の解説は0だった。

少ない日本語情報として公式ドキュメントの日本語訳(ちょっと古い)がありました。

V プログラミング言語 - Qiita
The V Programming Language の 公式ドキュメント の和訳だよ情報はすべて↑からコンパイルが速いこととC/C++との相互変換がウリの模様 (C/C++ 勢なので注目せざるを得ない2019 年 4 月にアーリーアクセス、同年 6 月 22 日にオ...

V言語を触ってみての感想

個人的にとても使いやすかったです。

ドキュメントが少ないのでライブラリのソースのコメントを見ながら書いていますが。

勉強中にループと配列に関するコンパイラのバグを見つけ、IssueとDiscordで報告しました。

Code that cannot be compiled due to a C error · Issue #13262 · vlang/v
OS: macos, macOS, 12.1, 21C52 Processor: 8 cpus, 64bit, little endian, Apple M1 CC version: Apple clang version 13.0.0 (clang-1300.0.29.30) getwd: /Users/hayao/...

まだまだこの言語は発展途上という感じではありますが、Cとの相互運用がしやすいとのことなのでこれから発展して主流になっていったら良いなと思っています。

ポインタを直に触らなきゃいけない言語なんて低級言語ですよ。

ドキュメント見ながら2日ほどかけて作った

ということで、getoptをシェルスクリプトでリファクタリングしたコードをVに移植しました。

シェルと違って文字列処理はやはり面倒で、部分一致などはラッパー関数を作成してなんとか対処しました。

コメント

タイトルとURLをコピーしました