码迷,mamicode.com
首页 > 其他好文 > 详细

golang动画等待计算菲波那契结果

时间:2020-03-20 13:05:35      阅读:75      评论:0      收藏:0      [点我收藏+]

标签:cci   函数   main   运行   spinner   out   lis   pac   ISE   

一个小玩意,main goroutine将计算菲波那契数列的第45个元素值。由于计算函数使用低效的递归,所以会运行相当长时间,在此期间我们想让用户看到一个可见的标识来表明程序依然在正常运行,所以来做一个动画的小图标:

package main

import (
    "fmt"
    "time"
)

func main() {
    go spinner(100 * time.Millisecond)
    const n = 45
    fibN := fib(n) // slow
    fmt.Printf("\rFibonacci(%d) = %d\n", n, fibN)
}

func spinner(delay time.Duration) {
    for {
        for _, r := range `-\|/` {
            fmt.Printf("\r%c Caculating...", r)
            time.Sleep(delay)
        }
    }
}

func fib(x int) int {
    if x < 2 {
        return x
    }
    return fib(x-1) + fib(x-2)
}

golang动画等待计算菲波那契结果

标签:cci   函数   main   运行   spinner   out   lis   pac   ISE   

原文地址:https://www.cnblogs.com/janeysj/p/12530702.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!