LoginSignup
0
0

More than 3 years have passed since last update.

プログラミング超入門(2)〜GO言語〜

Last updated at Posted at 2021-03-03

データ型について

変数に入れるデータの種類のことを指し、①数値型(number「ナンバー」型)②文字列型(string「ストリング」型) ③ブール型(Boolean「ブーリアン」型)に分けデータを代入する際に、Go言語ではデータ型として指定する静的型付け言語が用いられる。逆に、変数にデータを入れる際にデータを指定する必要がなく自動的に判断してくれるプログラミング言語を動的型付け言語といいます。

数値型には、整数型と小数点型がある

数値型 説明
int コンピューターで表せるだけの範囲の整数値を表す(int8 int32等、-127〜127)
float64 64ビットのコンピューターで少数値を表す(32ビットの場合はfloat32型)
ints.go
package main

import "fmt"

func main() {
    var a int
    a = 4
    b := 6    
    fmt.Println(2 * a)
    fmt.Println(b - a)
}

前回までの応用で、データ型を自動判別させ変数を定義して値を代入し実行してみます。

・実行結果

./ints

8
2

変数自身の値に処理を加える

変数は「変」数という名前から伝わるように、一度値を代入したあとでも別の値を再代入することができ、前にあった変数の値は新しく上書きされて消されます。例えば、a := 100 の下にa = 50 と代入すれば、aの値は50になります。

変数自身の値にを処理して、新しく代入する

変数の元の値を処理してその変数に代入し直す事ができます。

                a = 50 (↓のaには値50が用いられる)
(新しい値80が代入→)a = a + 30

代入演算子の右側では、元の値が使われたうえで処理が行われます。そして、代入演算子の左側の変数に新しい演算子が代入される仕組みです。更に、a = a + 30a += 30のように省略して書くことができます。
省略形には、加算代入(+=)、減算代入(-=)、乗算代入(*=)、除算代入(/=)、剰余代入(%=)があります。

ints.go
package main

import "fmt"

func main() {
    a := 4
    b := 6    
    fmt.Println(2 * a)
    fmt.Println(b - a)

    a = 50
    b += a 
    fmt.Println(a)
    fmt.Println(b)
}

変数自身の値を処理して再代入する処理を追記させて実行してみます。

・実行結果

./ints

8
2
50
56

float64型の宣言を省略した書き方

a := 4.0

floats.go
package main

import "fmt"

func main() {
    a := 4    
    fmt.Println(2 * a)
    fmt.Println(2.0 * a) 
    fmt.Println(2.2 * a)
}

floats.goというファイルを作り、数値の型を確認してみます。

・実行結果

./floats

8
8
8.8

スクリーンショット 2021-03-01 20.39.07.png
変数 a にはint型、変数 b にはfloat64型が渡されている場合、データ型の異なる値同士で減算するとエラーが乗じます。Go言語を始めとしたプログラミング言語の多くは、データ型が異なる数値同士での計算を禁じています。また、Go言語のデータ型は、reflect(リフレクト)のパッケージのTypeOf(タイプオフ)を使用して確認することが出来ます。

nums.go
package main

import ("fmt" "reflect")

func main() {
    num01 := 123
    var num02 int = 123456789
    num03 := 1.23
    var num04 int = 1.23456789    

    fmt.Println(reflect.TypeOf(num01))
    fmt.Println(reflect.TypeOf(num02))
    fmt.Println(reflect.TypeOf(num03))
    fmt.Println(reflect.TypeOf(num04))
}

・実行結果

./nums

int
int
float64
float64

←前回の記事 次の記事へ→

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