最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

利用Go語言實現(xiàn)在終端繪制小兔子

 更新時間:2023年01月13日 14:19:57   作者:陳明勇  
這篇文章主要為大家詳細介紹了如何利用Go語言實現(xiàn)在終端繪制小兔子來給大家拜個早年,文中的示例代碼講解詳細,感興趣的小伙伴可以了解一下

前言

思來想去,使用 Go 語言創(chuàng)作,沒有想到好的創(chuàng)意,最后打算在終端動態(tài)打印小兔子,給大家拜年!

先來看看效果圖:

創(chuàng)作過程

小兔子模型制作

大部分的時間,都花在了畫兔子圖案的工作上。創(chuàng)建一個 txt 文檔,在文檔里通過特殊符號,一步一步將模型搭好,然后附上一副春節(jié)對聯(lián)。

實現(xiàn)思路

整個動態(tài)過程是由幾個不同的圖案依次打印而成,一共有 7 個圖案。起初我是將這 7 個圖案放到 txt 文件里,然后通過讀取文件,分割圖案,最后打印圖案,這樣做的好處是圖案和代碼分開了,降低圖案與代碼間的耦合度。

到最后,由于代碼要放到碼上掘金上面,而碼上掘金不支持讀取文件的操作,因此只能將圖案放到代碼里,用字符串變量接收。

代碼

package main

import (
	"fmt"
	"os"
	"os/exec"
	"time"
)

var r1 = "\n                    /\\   /\\" +
	"\n                   /  : /  |" +
	"\n                  :   :`  /" +
	"\n                   \\     ." +
	"\n                    \\   :." +
	"\n                    .`     `." +
	"\n                   :     0   \\" +
	"\n                 ..`          ;" +
	"\n             . `           `.ˉ" +
	"\n           .`                :" +
	"\n        .`                   ." +
	"\n      .`                     :" +
	"\n     .    Happy New Year     ." +
	"\n    .                     .`" +
	"\n .. `                  .`" +
	"\n:  ``             ;.  `、" +
	"\n`..`._____________::____)"

var r2 = "\n                        /\\   /\\" +
	"\n                       /  : /  |" +
	"\n                      :   :`  /" +
	"\n                       \\     ." +
	"\n                        \\   :." +
	"\n                        .`     `." +
	"\n                       :     0   \\" +
	"\n                     ..`          ;" +
	"\n                 . `           `.ˉ" +
	"\n               .`                :" +
	"\n            .`                   ." +
	"\n          .`                     :" +
	"\n         .    Happy New Year     ." +
	"\n        .                     .`" +
	"\n     .. `                  .`" +
	"\n    :  ``             ;.  `、" +
	"\n    `..`._____________::____)"
var r3 = "\n                            /\\   /\\" +
	"\n                           /  : /  |" +
	"\n                          :   :`  /" +
	"\n                           \\     ." +
	"\n                            \\   :." +
	"\n                            .`     `." +
	"\n                           :     0   \\" +
	"\n                         ..`          ;" +
	"\n                     . `           `.ˉ" +
	"\n                   .`                :" +
	"\n                .`                   ." +
	"\n              .`                     :" +
	"\n             .    Happy New Year     ." +
	"\n            .                     .`" +
	"\n         .. `                  .`" +
	"\n        :  ``             ;.  `、" +
	"\n        `..`._____________::____)"
var r4 = "\n                                /\\   /\\" +
	"\n                               /  : /  |" +
	"\n                              :   :`  /" +
	"\n                               \\     .                 ________________" +
	"\n                                \\   :.                |  喜  辭  舊  歲 |" +
	"\n                                .`     `.              ˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉ" +
	"\n                               :     0   \\" +
	"\n                             ..`          ;" +
	"\n                         . `           `.ˉ" +
	"\n                       .`                :" +
	"\n                    .`                   ." +
	"\n                  .`                     :" +
	"\n                 .    Happy New Year     ." +
	"\n                .                     .`" +
	"\n             .. `                  .`" +
	"\n            :  ``             ;.  `、" +
	"\n            `..`._____________::____)"
var r5 = "\n                                /\\   /\\" +
	"\n                               /  : /  |" +
	"\n                              :   :`  /" +
	"\n                               \\     .                 ________________" +
	"\n                                \\   :.                |  喜  辭  舊  歲 |" +
	"\n                                .`     `.              ˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉ" +
	"\n                               :     0   \\         ____" +
	"\n                             ..`          ;       | 兔 |" +
	"\n                         . `           `.ˉ        | 躍 |" +
	"\n                       .`                :        | 龍 |" +
	"\n                    .`                   .        | 騰 |" +
	"\n                  .`                     :        | 辭 |" +
	"\n                 .    Happy New Year     .        | 舊 |" +
	"\n                .                     .`          | 歲 |" +
	"\n             .. `                  .`              ˉˉˉ" +
	"\n            :  ``             ;.  `、" +
	"\n            `..`._____________::____)"
var r6 = "\n                                /\\   /\\" +
	"\n                               /  : /  |" +
	"\n                              :   :`  /" +
	"\n                               \\     .                 ________________" +
	"\n                                \\   :.                |  喜  辭  舊  歲 |" +
	"\n                                .`     `.              ˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉ" +
	"\n                               :     0   \\         ____                ____" +
	"\n                             ..`          ;       | 兔 |               | 龍 |" +
	"\n                         . `           `.ˉ        | 躍 |               | 騰 |" +
	"\n                       .`                :        | 龍 |               | 虎 |" +
	"\n                    .`                   .        | 騰 |               | 躍 |" +
	"\n                  .`                     :        | 辭 |               | 賀 |" +
	"\n                 .    Happy New Year     .        | 舊 |               | 新 |" +
	"\n                .                     .`          | 歲 |               | 春 |" +
	"\n             .. `                  .`              ˉˉˉ                  ˉˉˉ" +
	"\n            :  ``             ;.  `、" +
	"\n            `..`._____________::____)"

var r7 = "\n                                /\\   /\\" +
	"\n                               /  : /  |" +
	"\n                              :   :`  /" +
	"\n                               \\     .                 ________________" +
	"\n                                \\   :.                |  喜  辭  舊  歲 |" +
	"\n                                .`     `.              ˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉ" +
	"\n                               :     0   \\         ____                ____" +
	"\n                             ..`          ;       | 兔 |               | 龍 |" +
	"\n                         . `           `.ˉ        | 躍 |       2       | 騰 |" +
	"\n                       .`                :        | 龍 |       0       | 虎 |" +
	"\n                    .`                   .        | 騰 |       2       | 躍 |" +
	"\n                  .`                     :        | 辭 |       3       | 賀 |" +
	"\n                 .    Happy New Year     .        | 舊 |               | 新 |" +
	"\n                .                     .`          | 歲 |               | 春 |" +
	"\n             .. `                  .`              ˉˉˉ                  ˉˉˉ" +
	"\n            :  ``             ;.  `、" +
	"\n            `..`._____________::____)"

func main() {
	rabbits := []string{r1, r2, r3, r4, r5, r6, r7}
	for _, rabbit := range rabbits {
                // 通過終端控制符進行清屏
		//fmt.Println("\033c")
		cmd := exec.Command("cmd", "/c", "cls")
		cmd.Stdout = os.Stdout
		cmd.Run()
		// 打印圖案
		fmt.Printf("%s", rabbit)
		time.Sleep(time.Millisecond * 500)
	}
}

首先,使用七個字符串變量,保存七個不同的圖案,用于后續(xù)打印。

其次,將七個字符串變量放入字符串切片里,后續(xù)易于操作。

接下來,循環(huán)遍歷切片,打印圖案。

打印圖案之前,先通過 exec.Command 函數(shù),執(zhí)行 cls 命令,達到在 windows 系統(tǒng)上清屏的效果。cls 的缺點就是清屏時會閃屏,而上面注釋掉的一行代碼是通過終端控制符進行清屏,基本上不閃爍,適用于 linux 終端,在 windows 的命令行模式下清屏無效。同時 cls 命令和終端控制符在碼上掘金上也沒有看到清屏的效果,如果讀者有好的方法,請多多指教!

打印一個圖案之后,延時 0.5 秒后打印下一個圖案,讓肉眼可觀察到整個過程。

小結(jié)

動一動手指,讓小兔子在終端給大家拜年,簡單又有趣。

除了動手制作圖案以外,本次創(chuàng)作遇到最大困難是如何在終端清屏時不閃爍。通過打印 \033c 終端控制符進行清屏,基本上不閃爍,但是此操作在 windows cmd 終端下不起作用,無奈只能通過執(zhí)行 cls 命令,達到清屏的效果。但是碼上掘金上面,兩種方式都沒有達到清屏效果。

到此這篇關(guān)于利用Go語言實現(xiàn)在終端繪制小兔子的文章就介紹到這了,更多相關(guān)Go語言終端繪制兔子內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Golang高性能持久化解決方案BoltDB數(shù)據(jù)庫介紹

    Golang高性能持久化解決方案BoltDB數(shù)據(jù)庫介紹

    這篇文章主要為大家介紹了Golang高性能持久化解決方案BoltDB數(shù)據(jù)庫介紹,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步
    2021-11-11
  • Golang檢查變量類型的四種方式

    Golang檢查變量類型的四種方式

    Go提供幾種方法檢查變量的類型,在字符串格式化標識%T, 反射方式:reflect.TypeOf, reflect.ValueOf.Kind,另外還有使用類型斷言,switch case方式,下面通過實例分別介紹這四類方法,需要的朋友可以參考下
    2022-10-10
  • 使用Golong實現(xiàn)JWT身份驗證的詳細過程

    使用Golong實現(xiàn)JWT身份驗證的詳細過程

    JWT提供了一種強大而靈活的方法來處理Web應(yīng)用程序中的身份驗證和授權(quán),本教程將引導(dǎo)您逐步實現(xiàn)Go應(yīng)用程序中的JWT身份驗證過程,感興趣的朋友跟隨小編一起看看吧
    2024-03-03
  • Go實踐反向代理ReverseProxy解析

    Go實踐反向代理ReverseProxy解析

    這篇文章主要為大家介紹了Go實踐反向代理示例ReverseProxy解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-04-04
  • Golang正整數(shù)指定規(guī)則排序算法問題分析

    Golang正整數(shù)指定規(guī)則排序算法問題分析

    這篇文章主要介紹了Golang正整數(shù)指定規(guī)則排序算法問題,結(jié)合實例形式分析了Go語言排序算法操作技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2017-01-01
  • Go?panic的三種產(chǎn)生方式細節(jié)探究

    Go?panic的三種產(chǎn)生方式細節(jié)探究

    這篇文章主要介紹了Go?panic的三種產(chǎn)生方式細節(jié)探究,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-12-12
  • 詳解Go語言中net/http包的使用

    詳解Go語言中net/http包的使用

    Go語言內(nèi)置的?net/http?包十分的優(yōu)秀,提供了HTTP客戶端和服務(wù)端的實現(xiàn),本文主要就來和大家聊聊net/http包的使用,感興趣的可以了解一下
    2023-07-07
  • Golang?sync.Once實現(xiàn)單例模式的方法詳解

    Golang?sync.Once實現(xiàn)單例模式的方法詳解

    Go?語言的?sync?包提供了一系列同步原語,其中?sync.Once?就是其中之一。本文將深入探討?sync.Once?的實現(xiàn)原理和使用方法,幫助大家更好地理解和應(yīng)用?sync.Once,需要的可以參考一下
    2023-05-05
  • go json轉(zhuǎn)換實踐中遇到的坑

    go json轉(zhuǎn)換實踐中遇到的坑

    在使用 go 語言開發(fā)過程中,經(jīng)常需要使用到 json 包來進行 json 和 struct 的互相轉(zhuǎn)換,這篇文章主要介紹了go json轉(zhuǎn)換實踐中遇到的坑,非常具有實用價值,需要的朋友可以參考下
    2018-12-12
  • 簡單聊聊為什么說Go語言字符串是不可變的

    簡單聊聊為什么說Go語言字符串是不可變的

    最近有讀者留言說,平時在寫代碼的過程中,是會對字符串進行修改的,但網(wǎng)上都說 Go 語言字符串是不可變的,這是為什么呢,本文就來和大家簡單講講
    2023-05-05

最新評論

施秉县| 琼中| 高台县| 随州市| 维西| 双江| 泰来县| 扎囊县| 威远县| 古蔺县| 雅江县| 辽中县| 新兴县| 台南市| 武川县| 页游| 寿光市| 噶尔县| 德令哈市| 依兰县| 龙里县| 清水县| 威远县| 枞阳县| 鄂伦春自治旗| 望奎县| 济阳县| 阜阳市| 托里县| 南江县| 九台市| 敦煌市| 纳雍县| 邵东县| 皋兰县| 且末县| 乌兰浩特市| 临泽县| 宁化县| 邢台市| 宝鸡市|