LoginSignup
0
0

More than 3 years have passed since last update.

go言語学習雑記 1

Posted at

ちょっと前にGo言語を勉強していて、備忘録がてらその時のメモを書いていきます。

パッケージ

goはパッケージと言う単位で構成され、その中の関数や変数の単位でimport,exportをしていきます。
できるかどうかは、文字の大文字小文字で判別されています。

 package main

 import (
    "fmt"
    "math"
 )

 func main() {
    fmt.Println(math.Pi) //OK 
    fmt.Println(math.pi)  // error
 }

大文字の場合はexport されず
小文字の場合はexport されます。

変数宣言

変数は var <変数名> <型名> の形で宣言されます。
また分割代入っぽくかけます。

セイウチ演算子(:=)を使うと型推論を効かせて型名を省略して宣言できます。その場合はの宣言は <変数名> := <値> となります

定数は const <変数名> = <値> となります。 定数の場合は勝手に型推論が働きます。

 var i, j int = 1, 2
 test := "string" // 型推論を効かせて変数初期化
 const Pi = 3.14 // 定数、この場合型推論を効かせて定数初期化はできない

基本型

go は zero valueと言う機能があり、特定の型で値が代入されなかった場合自動的に値が代入されます。
なので、値を入れ忘れてがnullになってると言うケースを防ぐことができます。

 bool // zero value はfalse

 string // zero value は ""

 int  int8  int16  int32  int64 // zero value は0
 uint uint8 uint16 uint32 uint64 uintptr

 byte // uint8 の別名

 rune // int32 の別名
      // Unicode のコードポイントを表す

 float32 float64

 complex64 complex128

なお、なぜか基本型に複素数があります。

型変換

<型名>(<変数名>)で型変換ができる

 var i int = 42
 var f float64 = float64(i)
 var u uint = uint(f)
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