首页 > 解决方案 > 不会在终端上打印任何内容

问题描述

我想知道为什么当我执行命令go run example.go时不会在终端上打印任何东西。

下面的代码有效。

package main

import "fmt"

func main() {
    fmt.Println("Hello")
}

将打印Hello

但是当我想fmt.Printf在运行命令执行时使用该功能时,很快就会出现响应但在终端上被删除。

package main

import "fmt"

func main() {
    var i int = 2
    fmt.Printf("%v %T", i, i) // fmt.Print does not work to
}

标签: go

解决方案


您使用fmt.Printf不以换行符结尾的格式,因此您的系统会尽职尽责地打印输出而没有终止换行符。

大概你的shell然后通过将光标发送到行首并打印一些东西来覆盖输出。为防止这种情况发生,要么让程序以换行符结束其输出,要么更新 shell 的提示符以避免打印现有输出。

(旁注:它只是Go,而不是Go Lang。这会给搜索带来一些问题,这在 C 和 C++ 等短名称语言中很常见。)


推荐阅读