VSCodeを使ったRustのプロジェクト作成から実行までの流れ

# はじめに
こんにちは！@y-428です！
またまたRustの記事ということで、今回はタイトルにあるように
VSCodeでRustのプロジェクトを作成し、実行するという流れを紹介しようと思います！

一応前回書いた以下の記事で環境構築をした方に向けてとはなっていますが、そのほかの方にも参考になればなと思います:v:

https://qiita.com/y-428/items/4fcad7e73b061d9154f8

また、記事が良かったなと思った方は:green_heart:していただけますと今後の励みにもなりますので、よろしくお願いいたします！

ではやっていきましょう:thumbsup:

# プロジェクトの作成
まずはプロジェクトの作成の仕方についてです！

プロジェクトを作成するには、まずは`.cargo`がある場所まで移動しましょう！
`.cargo`は、`Rust`のインストールをしたときに`cargo`のコマンド関連のファイルが同時にインストールされます
(デフォルトだと`%USERPROFILE%.cargo\bin`になっているかと思います！)

コマンドプロンプトだと以下のようになっている箇所です～
```
Microsoft Windows [Version 10.0.22631.3155]
(c) Microsoft Corporation. All rights reserved.

C:\Users\各自ユーザ名>
```

このユーザ名ディレクトリの直下にあるので、これ以降のディレクトリでのみcargoコマンドが使えます！(間違ってたらすんません！！！)

では次にプロジェクト作成のコマンドを実行していきます！
作成コマンドは以下の通りです！

```
C:\Users\各自ユーザ名>cargo new プロジェクト名
```

試しにhello_worldというプロジェクト作成してみましょう
そうすると以下のような出力が得られると思います！
```
C:\Users\y_yot>cargo new hello_world
     Created binary (application) `hello_world` package
```

プロジェクトの作成はこれだけです！簡単ですね^^

:exclamation:注意
ちなみにこのコマンドで作成されるプロジェクトは「バイナリプロジェクト」と呼ばれるものです
ライブラリプロジェクトを作成したい方は、先程の作成コマンドにオプションで`--lib`と付けましょう！

では作成したプロジェクトをVSCodeで開いてプログラムを動かしてみましょう！

# プロジェクトの構成
まずはプロジェクトのファイル構成を見ていきましょう
ファイル構成は以下の通りです！
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3583310/7f3d123e-a353-33b7-5a29-23294401e9e1.png)

少し見にくいかもしれないので更に以下に記します！
```
hello_world/
    ├ src
    │  └ main.rs
    ├ target
    │ 
    ├ .gitignore
    ├ Cargo.lock
    └ Cargo.toml
```

簡単にそれぞれ説明すると
- `src`はソースコードを置くところ
- `target`はbuildやコンパイル時に生成される実行ファイル等が保存される場所
- `.gitignore`はバージョン管理ツールGitHubを使う際の追跡除け用の設定ファイル
- `Cargo.lock`はパッケージ(Rustではクレートと呼びます)のバージョン固定用
- `Cargo.toml`はクレートの依存関係の記述

となってます(超ざっくり)

今回は特にファイルの記述をいじるとかはないので今はこれぐらいの知識でいいでしょう(多分:sweat:)

# main.rs
プロジェクト作成時に`main.rs`ファイルが自動生成されるのですが、開いてみると何やらすでにコードが書かれてますね、、、

``` rust:main.rs
fn main() {
    println!("Hello, world!");
}
```

はい、皆さん幾度となく見たであろうあの言葉をターミナルに出力するプログラムが書かれています！
今回はこのプログラムを使ってあの言葉を出力するまでやっていきましょう～

一応書かれていることのザックリ解説ですが、<font color="yellow">`fn`</font>は関数宣言、<font color="green">`main`</font>は関数名、<font color="green">`println!`</font>はマクロ呼び出し(`!`付きはマクロの呼び出しです)となっています

# プログラムの実行
ではプログラムの実行をしていきましょう！
今回は2パターンの方法を紹介します
## ターミナルからcargoコマンドで実行するパターン
ターミナルから実行するには、cargoコマンドを使います！
今回は`cargo run`を使用します！
`cargo run`はプログラムのコンパイルから実行までを行ってくれます！

この辺は他にも`cargo build`や`cargo check`など色々あるのですがそれはまた今度(めんどくさかったわけではないです！！)
実行すると以下のような出力が得られます！
```
    Finished dev [unoptimized + debuginfo] target(s) in 0.00s
     Running `target\debug\hello_world.exe`
Hello, world!
```
あの言葉が出力できましたね～:relaxed:

## 拡張機能`codelldb`を使って実行するパターン
冒頭の記事で環境構築をした方は、VSCodeの拡張機能で`codelldb`をインストールしてると思います！
これを使うと簡単にコードのデバッグができちゃいます(ありがとう製作者様)

まずはじめに、VSCode左側サイドバーにある三角形に虫みたいなアイコンをクリック
![page1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3583310/ff92be33-3913-c6b9-7fb4-bc4ecec3eebd.png)

`Run and Debug`と書かれたボタンの下にある`create a launch.json file`をクリック
![page2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3583310/b7a51757-7089-4322-2f79-552d99e661b4.png)

そうすると検索バーが現れるので正しく拡張機能がインストールできる方は`LLDB`が選択できるかと思いますので選択しましょう！

そうすると、ツリーに`.vscode`というディレクトリが出現し、中には`launch.json`というファイルが格納されています

先程の三角形に虫のアイコンに戻ると、以下の画像のような画面になっていると思いますので、あとは緑の三角形ボタンを押すか、F5キーを押すことでデバッグができます！
![page3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3583310/a41edfa5-72bf-35d0-8851-9a2363f0ac7e.png)

こちらも実行すると先程と同様の実行結果が返ってくると思います！

# おわり
はい、これにてプロジェクトの作成→プログラムの実行までできました！
あとは自分の好きなようにプロジェクトを作ってバリバリコード書いちゃいましょう！

最後まで読んでいただいた方本当にありがとうございます！
また次回執筆する機会があればよろしくお願いいたします！！！