Skip to Content

入門Goプログラミング Lesson2から学んだこと

LESSON 2

fmt.Printf 引数

print(“{}”.format(“Pythonだとこう、よく使う”))

fmt.Printf("私の体重は、%vの表面で %vキロです。\n", "地球", 66)

実行結果

私の体重は、地球の表面で 66キロです。

fmt.Printf 文字位置調整

負の数(-)は右に空白を詰め、正の数(+)は左に空白を詰める

fmt.Printf("%-15v $%4v\n", "SpaceX", 94)
fmt.Printf("%-15v $%4v\n", "Virgin Galavtic", 100)

実行結果

SpaceX          $  94
Virgin Galavtic $ 100

変数

まとめて定義できる

// グループにまとめられる
var (
	abashiri = 26
	kitami   = 27
)

// 1行に複数も書ける
var tokoro, memanbetsu = 28, 29

定数

変数と書き方は変わらない

const katsuramachi = 3

インクリメント

どれでも可

i = i + 1
i += i
i++

デクリメント

どれでも可

i = i - 1
i -= 1
i--

おまけ

二項演算も短く書ける

// 半額
price /= 2

疑似乱数

rand.Intのseedを変更しなと、毎回同じ数値が表示される

package main

import (
	"fmt"
	"math/rand"
)

func main() {
	var num = rand.Intn(10) + 1
	fmt.Println(num)
	num = rand.Intn(10) + 1
	fmt.Println(num)
}

実行結果(毎回)

2
8

練習問題

距離と時間から速さを求める

表示する

package main

import "fmt"

func main() {
	const distance = 56000000

	var (
		days int32 = 28
		hour int32
	)

	// 日付を時間に変換
	hour, err := convertDayToHour(days)
	if err != nil {
		fmt.Println(err)
	}

	// 速さを求める
	speed, err := kiHaJi(distance, hour)
	if err != nil {
		fmt.Println(err)
	}
	fmt.Printf("速さ:%vkm/時", speed)
}

// 関数はLesson12で出てくる。正しい使い方かわからない。
func convertDayToHour(days int32) (int32, error) {
	var result int32
	// 日数に24時間をかける
	result = days * 24
	return result, nil
}

func kiHaJi(ki int32, ji int32) (int32, error) {
	var result int32
	// 距離÷時間
	result = ki / ji
	return result, nil
}

実行結果

速さ:83333km/時

参考

入門Goプログラミング