いろいろ備忘録日記

主に .NET とか Go とか Flutter とか Python絡みのメモを公開しています。

Goメモ-427 (spinnerメモ)(05)

関連記事

devlights.hatenablog.com

devlights.hatenablog.com

devlights.hatenablog.com

devlights.hatenablog.com

GitHub - devlights/blog-summary: ブログ「いろいろ備忘録日記」のまとめ

概要

以下、自分用のメモです。

前回に引き続き、spinner のメモです。

今回は、用意されている各スタイルについて。

サンプル

package main

import (
    "context"
    "fmt"
    "time"

    "github.com/briandowns/spinner"
)

func main() {
    ctx := context.Background()

    for i := 0; i < len(spinner.CharSets); i++ {
        <-play(ctx, i).Done()
    }
}

func play(ctx context.Context, no int) context.Context {
    ctx, cxl := context.WithCancel(ctx)
    go func() {
        defer cxl()

        spin := spinner.New(spinner.CharSets[no], 100*time.Millisecond)

        spin.Color("green")
        spin.Suffix = fmt.Sprintf(" CharSets[%d]", no)
        spin.FinalMSG = fmt.Sprintf("[DONE]%s\n", spin.Suffix)

        spin.Start()
        <-time.After(300 * time.Millisecond)
        spin.Stop()
    }()

    return ctx
}

実行すると以下のようになります。

参考情報

spinner package - github.com/briandowns/spinner - Go Packages

Goのおすすめ書籍


過去の記事については、以下のページからご参照下さい。

サンプルコードは、以下の場所で公開しています。