0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Golangを唐突に始めたい衝動に駆られた話

Posted at

金曜日の深夜に急にGoを始めたい衝動に駆られた

思い立った経緯

金曜日の夜にふと人気プログラミング言語について閲覧していた。そこでPythonやJavascript不動の人気に、「はい、そうですか。」気分でみていた。そこでみたGoLangをみて、「あ、せっかくだし触りだけでも今日やろうかな」と思ったので、自分への議事録のため記事を投稿。

やったこと

自分のPCでの動作環境構築と公式ドキュメントの「Packages, variables, and functions.
Learn the basic components of any Go progr」をやってみた

動作環境

OS:macOS Catalina 10.15.6
Editor:Visual Studio Code 1.47.3
pkg管理:Homebrew 2.4.9

環境構築

まずはGoLangのインストールから

hoge@hoge-MacBook-Air ~ % brew install go
...省略...
hoge@hoge-MacBook-Air ~ % go version
go version go1.14.5 darwin/amd64

インストール完了だね。

動作確認

Visual Studio Code(以下VSCode)を起動して、必要な拡張機能をインストールする。
スクリーンショット 2020-08-01 3.21.16.png

だけをインストールしました。
そして、(Cmd+Shift+P)で全てのコマンドを表示し、以下を選択する。
スクリーンショット 2020-08-01 3.26.38.png

  • Go:Install/Update Tools
スクリーンショット 2020-08-01 3.28.00.png

項目を全て選択し、インストールする。
インストール完了したら環境構築は完了となるので、実際にコードを試しに書いていく。

サンプルコード実装と内容の理解

公式のページ(https://golang.org/ )にならって、以下のファイルを任意のフォルダで作成。

hello.go
// You can edit this code!
// Click here and start typing.
package main

import "fmt"

func main() {
	fmt.Println("Hello, 世界")
}

そしてコンパイル実行を行う。

hoge@hoge-MacBook-Air sampleGo % go run hello.go
Hello, 世界

問題なく実行確認が完了しました。
これでとりあえずの環境構築が完了としています。

公式ドキュメントを読んでいく

A Tour of Go(https://golang.org/doc/ )でドキュメントを読んでいく。
 

Package & import

Goのプログラムはパッケージで構成されています。
Packageはmainから開始される。
下記のプログラムでは、"fmt"と"math/rand"をインポートしている。

package main

import (
	"fmt"
	"math/rand"
)

Exported names

最初の文字が大文字で始まる名前は、外部パッケージから参照できるエクポートされた名前となっている。
パッケージをインポートしているとエクスポートしている名前は参照することができる。

exported-names.go
// Piはmathパッケージでエクスポートされている
package main
import (
	"fmt"
	"math"
)
func main() {
	fmt.Println(math.Pi)
}

function

関数は0個以上の引数を受け取れる。

Named return values

Goでの戻り値となる変数に名前をつけることができ、ただし、名前をつけた戻り値の変数(以下のxとy)についてはreturn ステートメントに何も書かずに戻すことができ、このことをnaked returnという。推奨は使わない。

named-results.go
package main

import "fmt"

func split(sum int) (x, y int) {
	x = sum * 4 / 9
	y = sum - x
	return
}

func main() {
	fmt.Println(split(17))
}

variables

基本的には「var XXX = X」の形で宣言を行うが、関数ないだけ「XXX := X」と暗黙的な型宣言ができるが、関数の外ではエラーとなる。
基本型と初期値については以下の通り。

bool
    デフォルト初期値:false
string
    デフォルト初期値:""
int  int8  int16  int32  int64
uint uint8 uint16 uint32 uint64 uintptr
byte // uint8 の別名
rune // int32 の別名
     // Unicode のコードポイントを表す
float32 float64
complex64 complex128
    デフォルト初期値:0

Type conversions

Go言語では明示的な変換が必要で、以下のような形でおこなう。
もし、明示的な型を指定せずに変数を宣言する場合は、変数の右側から型推論がされる。

// 通常
var i int = 42
var f float64 = float64(i)
var u uint = uint(f)

// シンプルに
i := 42
f := float64(i)
u := uint(f)

Constants

定数はconstキーワードを使って変数と同じように宣言を行う。
定数は、文字(character)、文字列(string)、boolean、数値(numeric)のみで使えます。
なお、定数は := を使って宣言できません。

最後に

今日はここまでやったので、また衝動に駆られた際に続きをやっていこうかと。
よい気晴らしになりました。新しい言語を学び始めるとどっぷりハマってしまうので、
また忘れた頃に続きを別記事で更新します。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?