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?

【Go言語入門】-定義編-

Posted at

はじめに

今年からGoの基礎を勉強しているので備忘録的に残しておこうと思います。
今回は定義編になります。

環境構築

こちらの記事に記載しています。
https://qiita.com/karaagekun20/items/eb858835dc26811104af
エディターは一旦VSCodeを使用しています。

フォーマット

以下のコマンドでコードをフォーマットすることができます。

gofmt -w  sample.go

Hello world

package main

import "fmt"

func main() {

fmt.Println("Hello, World!")

}

// 出力結果
Hello, World!

変数

func main() {
	var i int = 1
	var s string = "text"
	var t bool = true
	fmt.Println(i, s, t)
}

// 出力結果
1 text true

省力系

func main() {
	var (
		i int    = 1
		s string = "text"
		t bool   = true
	)
	fmt.Println(i, s, t)
 }

 // 出力結果
1 text true

Short variable declaration(関数内のみで使用可能)
※varは関数外でも使用可能
また、型を明示的に宣言したい時はvarを使用

func main() {
	x := 1
	y := "Hello"
	fmt.Println(x, y)
 }

// 出力結果
1 Hello

定数

const X = 1

const (
	Name = "Taro"
	Age  = 18
)

func main() {

	fmt.Println(X, Name, Age)
 }

 // 出力結果
 1 Taro 18

配列

初期値なし

var array [2]int 
array[0] = 1
array[1] = 2

// 出力結果
[1 2]

初期値あり

var array []int = []int{1,2,3} 
array[2] = 0

// 出力結果
[1 2 0]

要素の追加

var array []int = []int{1,2,3} 
newArray := append(array, 100)

// 出力結果
[1 2 3 100]

map

m := map[string]int{"first": 1000, "second": 2000}
fmt.Println(m)

// 出力結果
map[first:1000 second:2000]

fmt.Println(m["first"])

キーを指定

m := map[string]int{"first": 1000, "second": 2000}
fmt.Println(m["first"])

// 出力結果
1000

同じキーに違う値を入れる

m["second"] = 3000
fmt.Println(m)

// 出力結果
map[first:1000 second:3000]

新たなキーを追加

m["third"] = 4000
fmt.Println(m)

// 出力結果
map[first:1000 second:3000 third:4000]

関数

引数なし

func test() {
	fmt.Println("Hello")
}

func main() {
	test()
 }

 // 出力結果
 Hello

引数あり

func test(x int , y int) {
	fmt.Println(x + y)
}

func main() {
	test(1,2)
 }

 // 出力結果
 3

返り値あり

func test(x int , y int) int {
	return x + y
}

func main() {
	fmt.Println(test(10,10))
 }

 // 出力結果
 20

返り値が複数

func test(x int, y int) (int, int) {
	return x + y, x - y
}

func main() {
	fmt.Println(test(10, 10))
 }

 // 出力結果
 20 0

変数に関数を代入

func main() {
	f := func(){
		fmt.Println("Hello")
	   }
	f()
 }

 // 出力結果
 Hello

可変長変数

func test(param ...int) {
	fmt.Println(param)
}

func main() {
	test(10, 20)
    test(10, 20, 30)
 }

 // 出力結果
[10 20]
[10 20 30]

クロージャー

func test() func() int {
	x := 0
	return func() int {
		x++
		return x
	}
}

func main() {
	counter := test()
	fmt.Println(counter())
	fmt.Println(counter())
	fmt.Println(counter())
 }

 // 出力結果
 1
 2
 3

おわりに

まずは基礎的な部分をまとめてみました。
引き続き学んだことは残していきたいと思います。

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?