【初学者】Go言語  Lesson.1

##はじめに

今後面談予定の企業ではGo言語を使用中。
JavaやPHPやC言語等はよく見かけるが、私の応募する業界ではあまり拝見することがなかったため、学習をすることとした。
![column_main13619.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/780845/1385beed-3fa0-d6b7-e915-9fdfe65b0e72.png)


##Go言語とは
```
　　２００９年に 「Google」 が 「プログラミングの環境改善」 を目的とし開発したプログラミング言語
```
 ※　正式名称は「Go」だが、これだけだと違う意味にとらえられるので、「Go言語」「Golang」と呼ばれている。

![スクリーンショット 2021-02-23 14.25.36.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/780845/ce66f579-1823-2daa-2681-ee76714280f2.png)

__【開発背景と開発目的】__

　　　　　現代はどんどんwebサービスが高度化している
　　　　　　　　　　　　　　↓
　　　　　　　内部のコードも比例して複雑化する
　　　　　　　　　　　　　　↓
　　　　　　　システム開発の生産効率が落ちる

これらの問題を解決しようと、Google内で「プログラミングの環境改善」を目的として開発された。

##特徴
```
　「シンプル」 かつ 「高速な処理が可能」 なプログラミング言語
```
◉高速な処理
　⇨ コンパイラ言語であるため　
　⇨ 仮想マシンを介さずに実行するため
◉シンプルな構文
　①while文がない②継承がない③ジェネリスクがない。
　⇨ 機能を最小限に抑えていることやコードのばらつきを防ぐため
　⇨ 学習難易度が低め
　⇨ 開発効率をあげることができる
◉マルチプラットフィームのため、環境を選ばず使用可能。
　⇨ 規模の大きいシステム開発にも適している言語。
◉JavaやC言語と似た構文でコードが書ける。
　⇨ C言語を意識しながら設計されている言語のため

##環境構築
```
　　１） 「Go」
　　２） 「Goの拡張機能」 　をインストールする。
```
###__【Goをインストールする】__
__「ターミナル」__を使用し、インストールしていく。
__１、まずは、homebrewを最新バージョンにしておく。__

```
% brew update
```
![スクリーンショット 2021-02-23 16.23.18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/780845/81e1568e-b229-5815-9475-c7416d4caad2.png)


__２、「Go」をインストールする。__

 ```
% brew install go
```
![スクリーンショット 2021-02-23 16.27.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/780845/b7ef89e6-9d94-6e0e-96c7-1ca1f3ed883e.png)
__３、インストールされているか確認する__

 ```
% go version
```
![スクリーンショット 2021-02-23 16.32.33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/780845/ea734146-feb4-bd7d-fe55-6e72fe23bfff.png)
画像の様にバージョンが返ってくればOK

###__【VScodeにGo拡張機能をインストールする】__

__１、VScodeの「Extensions」にてGoを検索し、インストールする。__
![スクリーンショット 2021-02-23 16.36.17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/780845/4c26b617-d405-d2b3-220d-98b04ddcfabc.png)

##実行
__１、フォルダを作成し、ファイルを作成する。拡張子は「ファイル名.go」でOK。__
![スクリーンショット 2021-02-23 16.47.51.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/780845/8225f7e6-b057-8eff-0373-da9bb61e2751.png)

__２、記述していく__

```Greeting.go
package main
import ("fmt")

func main(){
    fmt.Printlin("Good morning")

    fmt.Printlin("Good morning")
		
    fmt.Printlin("Good morning")
}
 
```

◉Goのプログラムは何らかのパッケージに属している必要がある。
◉また、Goのプログラムのそのうちの一つは、必ずmainパッケージに属している必要がある。
◉fmt＝フォーマットの略、fmtというパッケージをインポートすることで、fmtパッケージの中にある関数などを使えるようになる。
◉fmtパッケージのようなよく使う関数をひとまとめにして、「パッケージ」という形で準備。提供している。
◉mainというパッケージに属するmain関数を記述する、
◉Goのプログラムは、mainパッケージの中にあるmain関数からプログラムがスタートする。
◉プログラムがスタートする場所のことは「エントリーポイント」という
◉「fmt.println("")」にてfmtパッケージにあるPrintln関数を使って文字列を表示させる
 
__３、ソースコードの実行__
　
◉Goはコンパラ言語のため、コンパイルをして、実行ファイルを作ってから実行することとなる。
そのため、
１）ターミナルを表示させる。
![スクリーンショット 2021-02-23 20.48.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/780845/0722e2bd-a4f5-e8be-7439-9dbfcc303cb7.png)

2)コマンド入力

```
  % go build ファイル名.go
```
![スクリーンショット 2021-02-23 20.51.48.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/780845/dd7137a8-7bb8-1378-2a2e-cb99a7888f85.png)

実行すると
![スクリーンショット 2021-02-23 21.03.46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/780845/9deb456f-528e-3f1a-6178-08aa2b5edced.png)
Greetingという新しいファイルができるので、このファイルを実行する。

```
  % ./ファイル名  
```
![スクリーンショット 2021-02-23 21.12.08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/780845/04af6a1b-a975-033a-ec0b-51ef26c00c52.png)
__【コンパイルと実行を同時にする方法】__

```
% go run ファイル名.go
```
![スクリーンショット 2021-02-23 21.19.14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/780845/6bfdd669-87ff-c977-bf78-991b1f010884.png)