ここ最近、放送大学の単位認定試験受験中のためRailsはお休みしてまして…
でも「なんかプログラミングやりたい!」ってことで、サブスクロスタイム中のProgate(やらねばならないRuby+Ruby on Railsは終了したので)をそのまま寝かしとくよりもと思って気になってた言語を触ってみた。
息抜きでProgateでGo(言語)やってみた
これが意外に楽しかった。あれ?これ簡単すぎない?と思いながらもサクサクと…
あとRubyやPythonやってる時の不安感がなかったのがしっくりきた。
不安感それは…
変数に型宣言してない!
ステートメントに「;」がないのも不安だったし、Pythonなんか{ }もなくてもうなんかふわふわな感じが///
学習効率を上げるためってのはわかっててもJavaのクソ長い呪文プログラミングから入ったので(でもプロダクト経験はない)あのフワフワ感が…
ということで、やりながらメモしたものをとりあえずUP
Go(言語)はじめの一歩(初めて触る言語のリアルタイム感想)を公開します
Javaの静的型付けとRubyのハショッった文法のいいとこ取りしてる感じ。(基本文法はJavaとほぼ同じ)
Javaよりは簡単でRubyよりちょい難しい?かも?
書き方としてはRubyよりJavaに近い感じ。
でも静的型付け言語は個人的にはものすごい安心感ある
あと、ブロックをちゃんと{ } で囲んでるのも安心感
(Javaでメモリとかプールの概念とかガーベジコレクションとか例外処理に殺されたからかもしれん)
Class ~~
じゃなくて
[main.go] ←ファイル名
package main{
func main(){
var a string = “おはよう世界”
println(a)
}
}
みたいに書く.
ステータスの最後に「;」はなし(この辺りはRubyと一緒)
だけど
変数は varと宣言してから変数名書いて型もちゃんと書く。
その上で、代入。
(ちなみにJavaのように【S】tringじゃなくて【s】tringだから注意)
しかも一回宣言した変数の型は後から別の型の値を代入(上書き・更新)できない。
var a string = “Hello World”
は
a := “Hello world”
って書くのもOK
だけど、コレは代入じゃないので気を付ける!
コメントアウトは
// 1行コメント
と
/*
ブロックコメントアウト
*/
の2パターン
Javaにもなかった新しい機能としては
使われてない変数はエラーになる!!
この機能は画期的…
Java教えてる時(…10年くらい前)から使われない変数って宣言してもいいの?って思ってたからドンピシャすぎる
条件否定式ってのがあるよ!(Σ(´・д・`;)ナニソレ?便利!)
time := 9
if !(time == 18){
println(“退社時刻ではありません”)
}
switch文とかはまるっきりJava。
switch文で「または」を「~~ , ~~」 で表せるらしい便利!
switch文の最後にdefaultが書けるところはJavaと一緒。
エラーが一気に出るところはGoコンパイラちゃん賢いなぁと感心しきり。
(Railsはエラーが1コずつ出る感じ)