ProgateでGoを学ぶ【コース1は文字列、数値、変数、条件分岐】

ProgateでGO

progateでGo

この記事ではProgateでプログラミング言語Goを学んだ内容をまとめていきます。筆者はGoというプログラミング言語のことはこの記事を書いている時点ではじめて存在を知りました。どんな言語なのか楽しみです。

プログラミング言語のGoってなに

GoはなんとあのGoogleが開発したプログラミング言語だそうです。特徴は実行速度がはやいことらしいですね。どんな人が使っているかはスタートアップとかが使っていたり、大規模システムも作れるみたいですね。

それでは学習を進めていきたいと思います。

表示

Goの表示は【 println() 】をつかうみたいですね。Goに対応しているシンタックスハイライトがないのでpreタグを使います。ご了承ください。

package main
func main() {
    println("Hello,Go")
}

とくにセミコロンが必須というわけでもないようですね。

インデント

Goにはインデントにもルールがあるみたいですね。インデントとはなにかというと。プログラムコードの字下げのことですね。以下のコードはインデントが統一された状態です。

package main
func main() {
	println("Hello, 世界")
}
func sub() {
	println("Hello, Go")
}

Goの文字列

  • Goの文字列を表現するには【 ”” 】ダブルクォーテーションを使います。
  • コメントアウトを表現するには【 // 】ダブルスラッシュを使います。
  • 複数コメントアウトを書くには【 /**/ 】を使います
package main
func main() {
    println("こんにちは、背下記")
    //この行をコメントにしてください
}

数値

Goの数値は他のプログラミング言語と同様ですね

+ 加算
減算
* 掛算
/ 割算
% 余り
package main
func main() {
    println(12/3)//4
    println(3 * 6)//18
    println(8%3)//2
}

文字列の連結

Goの文字列の連結は【 +記号 】をつかいます。たまに.ピリオドをつかって文字列連結する言語もありますが、Goの場合は+で連結します。

package main
func main() {
    println("こんにちは" + "世界")//こんにちは世界
    println("38" + "19"); //3819
    println(38 + 19) //57
}

変数

変数とはなにかというと、データを入れておける箱のようなものです。変数は代入するといって右の式(値)を変数に代入します。変数にはデータ型というものが存在し変数にあらかじめデータがタを宣言しておき。決まったデータ型の値を代入できるようにしておきます。

Goの変数を宣言するには【 var 】を使います【 var 変数名 データ型 = 値 】の記述します。データ型の宣言が変数よりもあとにきているはポイントです。

package main
func main() {
    var message string = "Hello, 世界"
    println(message);//Hello, 世界
}

変数の更新

変数の更新は定義した変数に再度値を代入してやればoKです

package main
func main() {
    var message string = "Hello, 世界"
    message = "Hello, Go";
	println(message)
}

変数のデータ型を省略した書き方

Goは変数のデータ型を省略して書くことができます。具体的には2種類の方法があります。ひとつは
【 var 変数名 = 値 】
ふたつめはvarも省略した書き方で := コロンイコールを使った書き方です
【 変数名 := 値 】

go データ型省略

package main
func main() {
    var message = "Hello, 世界";
    var number = 100
    println(message, number);//Hello, 世界 100
}

型の不一致と未使用変数

Goは変数定義はしたものの使っていない変数がある場合はエラーになるように設計されているようです。型の不一致は変数定義したときのデータ型と違うものを代入しようとするとエラーになるものです。

変数の自己代入

変数の自己代入はたとえば【 score = score + 5 】は
【 score += 5 】と同じ意味になるというものです。またGoはインクリメントとデクリメントが使えます。インクリメントは++とすることで変数に1を加算します。デクリメントは–を使うことで変数の値から-1します。

+= 変数を加算したものを自己代入
-= 変数を減算したものを自己代入
*= 変数を掛算したものを自己代入
/= 変数を割算したものを自己代入
%= 変数から算出した余りを自己代入
++ 1を加える
1を引く
package main
func main () {
    n := 100
    n -= 10//90
    println(n)
    m := 10
    m++//11
    println(m)
}

条件分岐

Goの条件分岐はif文を使います。条件分岐とはなにかというと〇〇だったらこの処理をする。〇〇じゃなかったらこの処理をする。というように条件によってプログラムの処理を分岐させることをいいます。if文は日本語になおすと【 〇〇だったら 】になります。
条件の判定は【 比較演算子 】というものを使用して判定します。以下が比較演算子です。

== 〇〇と等しかったら
!= 〇〇と等しくなかったら
< 〇〇より小さい
> 〇〇より大きい
>= 〇〇以下
<= 〇〇以上

条件分岐構文の書き方は【 if 条件式{} 】とかいて、条件が真だったら{}なみかっこブログが処理されます。ちなみに条件式の部分は()をつけてもつけなくてもよいみたいですね。

package main
func main() {
    x := 123
    y := 5 * 6
    
    if(x >= 100){
        println("xは100以上です")//xは100以上です
    }
    if(y < 40){
        println("yは40より小さいです")//xは40より小さいです
    }
}

真偽値

真偽値とはなにかというとtrueとかfalseのことですね。条件式が正しかったらtrueや正しくなったらfalseです。日本語になおすとtrueは真。falseは偽になります。こういうこともあって真偽値とよんでいます。if文は条件がtrueのときに実行されます。

elseとelse if

elseとはなにかというと条件がみたされなったときに実行される処理をかくものです。else ifとは複数の条件分岐を設定したいときについます。

package main
func main() {
    money := 200
    price := 200
    if money > price {
        println("商品を買うことができます")
    }else if(money == price){//複数の条件を設定したいときにelse ifを使う
        println("商品を買うことができますが所持金が0円になります")//〇これ
    }else{//条件にあてはまらなかったときの処理を書く
        println("お金が足りません")
    }
}

論理演算子

論理演算子とはなにかというと条件式の部分で複数の条件を設定したいときや、否定の条件をかきかたいときにつかいます。記号は【 &&, ||, !() 】などがありそれぞれの意味は下記にしめすとおりです。

&& 〇〇かつ
|| 〇〇または
!() 〇〇でない
package main
func main() {
    x := 20
    if(x >= 10 && x <= 30){
        println("xは10以上30以下です")
    }
    y := 60
    if(y < 10 || y > 30){
        println("yは10未満または30より大きいです")
    }
    z := 55
    if(!(z == 77)){
        println("zは77ではありません")
    }
}

!()を使った否定の書き方は〇〇じゃなかったらtrueなので結構混乱しやすいので気を付けてください。

switch文で条件分岐

switch文は条件がたくさんあるときにつかいます。【 switch(値){} 】のようにしてswitch()に値を設定してそれをcase文で比較します。処理が終わらったらbreak文で終了する必要があるのでbreak文は必ず記述します。default文はどのケースにもあてはまらなkったときに実行されます。

package main
func main() {
	n := 3
	switch n {
	case 0:
        println("凶です")
		break
	case 1,2:
		println("吉です")
		break
	case 3,4:
		println("中吉です")//〇
		break
	case 5:
		println("大吉です")
		break
	}
}

case文のところでカンマ区切りして複数の数値と比較することが可能です。

Progate Goコース1まとめ

ProgateのGoコース1で学んだ内容は、文字列、数値、変数、条件分岐でした。Goの変数のデータ型を省略した書き方は := を使ったあまり他ではみられない書き方でしたが、その他はとくに変わったところはありませんでした。

次の記事はProgateでGoを学ぶ【コース2はパッケージ、繰り返し処理】 | 初心者のプログラミング