【Go言語の勉強】2日目 基本的な変数や型など

■ 目次


 

1. 基本的な記述例


 

2. Go言語の変数の基本的な型について

2.1. 【真偽値型】 編

真偽値型に含まれるのは1種だけで、初期値は【false(偽)】です。
型名説明
bool真(true)または偽(false)を格納する型
 

2.2. 【数値型】 編

符号なし整数
サイズ違いの物が多いけど、基本的にはuint型を使用する
型名説明値の範囲
uint32/64ビットの符号なし整数型(環境依存)
uint88ビット符号なし整数型0 ~ 255
uint1616ビット符号なし整数型0 ~ 65535
uint3232ビット符号なし整数型0 ~ 4294967295
uint6464ビット符号なし整数型0 ~ 18446744073709551615
uintptrポインタの値を表現するには十分なサイズの符号なし整数型(環境依存)
 
符号付き整数
符号なし整数と同様に、基本的にはint型を使用する
型名説明値の範囲
int32/64ビットの符号付き整数型(サイズはuint型と同じ)(環境依存)
int88ビット符号付き整数型-128 ~ 127
int1616ビット符号付き整数型-32768 ~ 32767
int3232ビット符号付き整数型-2147483648 ~ 2147483647
int6464ビット符号付き整数型-9223372036854775808 ~ 9223372036854775807
 
浮動小数点数
2種類あるため、状況の精度に応じて使用する
型名説明
float32IEEE-754形式の32ビット浮動小数点数
float64IEEE-754形式の64ビット浮動小数点数

複素数

わからん。
型名説明
complex64実数部・虚数部をfloat32で表現する複素数型
complex128実数部・虚数部をfloat64で表現する複素数型
 

その他

バイト単位、文字列単位のデータを扱う際に使用する型が2種類ある
型名説明
byteuint8のエイリアス
runeint32のエイリアス
 

文字列型

文字列型は1種類のみ
型名説明
string文字列を格納する型
 

2.3. 【変数の宣言の方法】 編

varまたは、省略方法で宣言する。
↓型を省略できるが、動的型付けではなく、代入値で初期化できる場合に限る
注意点 : Go言語は宣言した変数を使っていない場合はエラーになる。
 

2.4. 【新しい型の定義/構造体】 編

宣言時は、typeキーワードで新しい型として認識させる。

 

3. 様々な変数の細かな違いなど

3.1. 宣言の仕方

var を使う方法
 
宣言と初期化を同時に行う型の方法(早い模様)
 
関数内に限り演算子 := を使うとvarも省ける方法
 
複数の変数を一度に初期化方法
 
変数の宣言で初期値はゼロ(0)、論理値はFalse(偽)
 

3.2. 文字列の演算子比較


 

4. 定数について

ソースファイルの中で、同じパッケージスコープ内に定義しておく必要がある。また、定数として予め定義して使うのは便利だが、定義して使わない場合はエラーになる。Constの例 として、Paiの中に3.14を定数として代入

 

5. mainパッケージについて

main パッケージは特殊で、main関数 = エントリーポイントが唯一存在できるパッケージである。但し、main パッケージのソースファイルの中にはmain関数は1つのみ存在が可能

 

6. 配列について

6.1. 通常の宣言

int型の要素数3の配列を宣言と初期化もできる
 
 

6.2. 可変長の配列も可能

 

6.3. 配列の大きさを調べる

組み込み関数のlen()を使用する
 

6.4. スライス

スライスは可変長の配列と同じ効果があるが、要素数を指定しなくても使える。
 

6.5. マップ(map)

連想配列で、配列の初期化時に呼び出し用のキーと値を入力できる。

 

7. メソッドについて

int型などにはメソッドは関連付けれないけど、構造体のようなtypeで新たに定義された型には関連付けれる。

 

8. 演算子について

8.1. イクリメントとデクリメントの違い

変数の後ろにのみつけることができる
単独で使用しなければならない
 

8.2. ブランク識別子(_)

ブランク識別子(_)は、値などを受け入れるが変数のようには使用不可使用例
 

8.3. 変数宣言のグルーピング

()でグルーピングが可能使用例
 

8.4. 0とNullとnill

Go言語ではポインタにはゼロ(0)を代入する事は不可。代わりに、nillが採用されていて、様々な場面で初期化に使用されている。

 

まとめとして

  1. 文末にはセミコロン(;)は自由
  1. セミコロンで文を区切れば1行に複数の処理を記述可能
  1. 値の変数への代入はイコール(=)で可能
  1. 通常文字列はダブルクォート(” “)で囲み、エスケープシーケンスをそのまま文字列にする場合はシングルクォート(‘ ‘)で囲む
  1. 処理は波括弧 { } で囲う
  1. 関数定義にはfuncを使用
  1. 変数宣言はvarで始める
      • := で代入するとその値の型が適用される変数になるなど新しいルールも存在する
  1. 大文字、小文字は区別される、関数名の最初の文字が大文字の場合にはグローバルスコープと扱われる
  1. 構造体のメンバーにアクセスにはドット(.)を使用
  1. パッケージが導入、パッケージのインポート
main.go
oreo.go