0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

カフェでプログラミングしてる風(でも何もやってない)Goコード

Last updated at Posted at 2022-01-06

概要

こちらこちらの記事を拝見し、学び始めの言語を使うにはちょうど良さそうだと思ったので、Goで作ってみました。

見た目

こんな感じで、ただただ何かをダウンロードしているだけの人間になります。
数秒程度であれば周りの目を誤魔化せるはず、、、、
go_cofe.gif

実装

package installs

import (
	"fmt"
	"math/rand"
	"time"
)

func PrintInstall() {
    // 時刻からランダムなシード値を設定
	rand.Seed(time.Now().UnixNano())

	// #を50文字出力する
	maxCount := 50
	// #をカウントする
	currentCount := 0
	// 出力用のダミーパッケージ名
	packageList := [...]string{
		"hoge",
		"fuga",
		"coffee-code",
		"go-package",
		"sample",
		"json-parset",
		"yokozuna",
		"kakamimochi",
		"ramen",
		"mac",
	}
	// ダミーのアラートメッセージ
	alertMsg := `Warning: This package is old version!!
	You should install newer version!!`

	// パッケージのダウンロードを繰り返す
	for {
		// 0~9でランダムに生成
		randomNum := rand.Intn(10)

		// パッケージ名をランダムに出力
		fmt.Printf("go: downloading %s", packageList[randomNum])
		fmt.Println("")

		// 出力している#が50未満なら#を出力する
		for currentCount < maxCount {
			// ランダムに時間をかけているように見せるための数値を生成
			sleepRate := time.Duration(rand.Intn(50))

			fmt.Print("#")
			currentCount++

			// sleepRateが0ならsleepしない
			if sleepRate == 0 {
				continue
			}
			time.Sleep(time.Second / sleepRate)
		}

		fmt.Println(" Done!!")

		// randomNumが0ならダミーのアラートを出す
		if randomNum == 0 || randomNum == 1 || randomNum == 2 {
			fmt.Printf("%s", alertMsg)
			fmt.Println("")
		}

		// 最後に#のカウントを0に戻す
		currentCount = 0
	}
}

最後に

Goを簡単に勉強して基本的な文法だけで作れそうなものがないかと思っていたら、ちょうど良さそうな題材を拝見したので作ってしまいました。
Rust版とかも作ってみたいなぁと思っています。

参考

カフェでプログラミングしてる風(でも何もやってない)Java(クソ)コード
カフェでプログラミングしてる風(でも何もやってない)Python(クソ)コード

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?