0
0

More than 3 years have passed since last update.

ゆっくりGo vol.1

Posted at

前書き

Python、R、Fortran90、C#、Processing、等々さわってきた結論として、

CとFortranからは逃れられない定めにあると悟りました

Goで土台を築くことに……

そして、後輩たちに布教するんだ……ふへっ

学ぶ上で用意した物

Go Tour
https://go-tour-jp.appspot.com/

スターティングGo言語
https://www.amazon.co.jp/dp/B01FH3KRTI/

本題

Go Tourのforまで学んで思ったことについて

導入

@yoskeoka 氏が WindowsにGo言語をインストールする方法まとめ

とまとめてくださっているので、導入には苦労しませんでした

と言うのも、入れろ入れろと煩く言われたウイルス対策ソフトの影響で、

挙動が不安定になり、

hello.go
package main

import "fmt"

func main() {
  fmt.Printf("Hello world\n")
}

go rungo build に数分かかる、フリーズしかける、など

酷い目に遭いました

うーん、初歩的!

気に入っている所

import.go
//----------------
import (
    "fmt"
    "time"
)
//----------------

importを枠内に書くので見やすい

()で囲むところもポイントが高い

type.go
//----------------------------
func add(x int, y int) int {
    return x + y
}
//-----------------------------

型を変数の後ろで定義する所が最初は違和感だったけれど、

xが整数と素直に読める事を考えると、素晴らしい!になった(小並感)

while.go
//-------while--------------------------
func main() {
    sum := 1
    for sum < 1000 {
        sum += sum
    }
//-------infinite-----------------------
func main() {
    for {
    }
}
//---------------------------------------

whileを利用した所、infiniteを利用した所など、

非常に分かりやすくて、すこすこのすこ!

ぐぬぬ……な所

func.go
//----------------------------------------
func swap(x, y string) (string, string) {
    return y, x
}
//----------------------------------------

戻り値の型の定義が、引数の隣なので忘れそうで怖い

loop.go
//----------------------------------------
func main() {
    sum := 0
    var i int = 0
    for ; i < 10; i++ {
        sum += i
    }
    fmt.Println(sum)
}
//----------------------------------------

暗示的な型には:=を、明示的な型にはvarを利用するのですが、

for文の変数に対して型を明示的するやり方が分からない件について

上の書き方で、var i intvar i float64 に変えると、

mismatched types int and float64

と返ってきたので、一応成功していそうです

態々そんなのする必要ある?は禁句

本日のまとめ

この言語、個人的にすこすこのすこてぃっしゅ!

明日はMethods and interface に突入したいね!

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