はじめに
こんにちは。キノコードです。
「【5分レッスン】Go超入門コース#07 データ型」について説明します。
データ型とは?
データ型とは、変数に入れるデータの種類のことです。
この動画では、データ型の数値型、文字列型、ブール型について説明します。
ちなみに、Goでは、変数にデータを入れるときに、データ型を指定する必要があります。
このようなプログラミング言語のことを静的型付け言語といいます。
静的型付け言語には、Go、Java、Kotlin、C言語などがあります。
一方、変数にデータを入れるときに、データ型を指定する必要がなく、自動的にデータ型を判断してくれる言語があります。
このような言語のことを動的型付け言語と言います。
動的型付け言語には、Ruby、Python、JavaScript、PHPなどがあります。
Goの数値型
最初に、数値型です。
数値型には、整数型と小数点型があります。
整数型には「Int8」「Int16」「Int32」「Int64」があります。
「Int8」が扱える桁数が小さく、「Int64」が扱える桁数が一番大きいです。
後ろの数字を省略してIntとすることもできます。
これは、実装するOSやCPUに依存した整数型です。
通常はこのInt型で問題ないでしょう。
次に、小数点型です。
小数点型には、「float32」「float64」があります。
「float32」より「float64」の方が、小数点以下の扱える桁数が大きいです。
通常は、「float64」で問題ないでしょう。
Goのプログラムを書いて、みていきましょう。
package main
import "fmt"
func main(){
num01 := 1
var num02 int = 1234567890
num03 := 1.234
var num04 float64 = 1.23456789
fmt.Println(num01)
fmt.Println(num02)
fmt.Println(num03)
fmt.Println(num04)
}
レッスン6の変数で説明したように、データ型を省略して書くことができます。
データ型を省略した場合と、宣言した場合と交互に書いてみましょう。
num01は省略した場合で書きます。
num02は、int型を宣言します。桁数が多い整数を入れます。
num03はデータ型を省略して、小数点を書きます。
num04はfloat64型を宣言します。小数点以下の桁数が多い数値を代入します。
実行してみましょう。
表示されました。
package main
import (
"fmt"
"reflect"
)
func main() {
num01 := 123
var num02 int = 1234567890
num03 := 1.23
var num04 float64 = 1.23456789
fmt.Println(reflect.TypeOf(num01))
fmt.Println(reflect.TypeOf(num02))
fmt.Println(reflect.TypeOf(num03))
fmt.Println(reflect.TypeOf(num04))
}
Goのデータ型は、「reflect(リフレクト)」のパッケージの「TypeOf(タイプオフ)」を使用して確認する事が出来ます。
Goのプログラムを書いてみます。
importに「reflect」を追加しましょう。
num01とnum02のデータ型は整数の「Int」、num03とnum04のデータ型は「float64」という結果になるはずです。
実行してみましょう。
予想通り整数は「Int」、小数は「float64」と表示されました。
次に、小数系のデータ型についてです。
小数系のデータ型は、float,doubleの2つです。
float,doubleは、扱える小数点以下の桁数に違いがあります。
doubleはfloatより多くの桁数の小数点を扱えます。
floatは、longのときと同じように、終わりにアルファベット「F」をつけます。
小数点を扱うときは、doubleを使うことの方が多いです。
javaのプログラムを書いてみます。
class Lesson07_02 {
public static void main(String[] args) {
double var01 = 1.23456789;
float var02 = 1.234F;
System.out.println(var01);
System.out.println(var02);
}
}
doubleはfloatより多くの桁数の小数点を扱えます。floatにはFをつけます。doubleの桁数ほど扱えません。
表示されました。
Goの文字列型
次に、文字列型について説明します。
文字列型は「string型」ともいいます。
文字列はダブルクォーテーションでくくります。
「Hello,World!」の文字列をダブルクォーテーションでくくって、string_aという変数に代入してみましょう。
データ型を宣言した場合と、省略した場合を書いてみましょう。string_bという変数に代入してみます。
Printlnに文字列の「Hello,World!」とデータ型を表示させましょう。
データ型は「string」という結果になるはずです。
実行してみましょう。
package main
import (
"fmt"
"reflect"
)
func main(){
var string_a string = "Hello,World!"
string_b := "Hello,World!"
fmt.Println(string_a)
fmt.Println(reflect.TypeOf(string_a))
fmt.Println(string_b)
fmt.Println(reflect.TypeOf(string_b))
}
予想通り「Hello,World!」と 「string」が表示されました。
Goのブール型
最後に、ブール型です。
ブール型は、Boolean型(ブーリアン型)ともいいます。
ブール型は、TrueまたFalseの2つのうち、どちらか1つを持つ型です。
TrueとFalseとはなんでしょうか?
例えば、10と1では10の方が大きいです。
つまり、「10>1」は正しいです。
これを変数に代入するとTrueが入ります。
逆に「10<1」は誤りです。これを変数に代入すると、Falseが入ります。
Goのプログラムを書いてみます。
package main
import (
"fmt"
"reflect"
)
func main(){
a := 10
b := 1
var num_bool bool = a > b
fmt.Println(num_bool)
fmt.Println(reflect.TypeOf(num_bool))
}
aという変数に10を代入。bという変数に1を代入。a>bは正しいので、「True」がnum_boolという変数に代入されます。
今回は型を宣言します。
データ型を表示させましょう。データの種類は「bool」という結果になるはずです。
実行します。
Trueとboolが表示されました。
package main
import (
"fmt"
"reflect"
)
func main(){
a := 10
b := 1
num_bool := a < b
fmt.Println(num_bool)
fmt.Println(reflect.TypeOf(num_bool))
}
データ型を省略して書いてみましょう。
不等号を逆にすると誤りなのでFalseが代入されているはずです。
実行します。
falseと「bool」が表示されました。