Skip to Content

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

LESSON 2

fmt.Printf 引数

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

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

実行結果

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

fmt.Printf 文字位置調整

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

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

実行結果

SpaceX          $  94
Virgin Galavtic $ 100

変数

まとめて定義できる

1
2
3
4
5
6
7
8
// グループにまとめられる
var (
	abashiri = 26
	kitami   = 27
)

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

定数

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

1
const katsuramachi = 3

インクリメント

どれでも可

1
2
3
i = i + 1
i += i
i++

デクリメント

どれでも可

1
2
3
i = i - 1
i -= 1
i--

おまけ

二項演算も短く書ける

1
2
// 半額
price /= 2

疑似乱数

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

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
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

練習問題

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

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
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プログラミング