如何在golang中写入stdin?

How to write to stdin in golang?

这是我的代码

func InputRead() string {
         reader := bufio.NewReader(os.Stdin);
         fmt.Print("> ");
         text, _ := reader.ReadString('\n');
         text = strings.Replace(text, "\n", "", -1);
}

我想在 os.Stdin 中放置一些字符串,我该如何实现? 应该出现
> HAHA 然后我的光标应该能够删除类似于 <input> 的 HAHA,并在 HTML.
中使用预填充文本 在 python3 中,它是这样实现的

def stdininput(prompt, text):
         def hook():
             readline.insert_text(text)
             readline.redisplay()
         readline.set_pre_input_hook(hook)
         result = input(prompt)
         readline.set_pre_input_hook()
         return result
import readline
print(stdininput('> ', 'haha'))

对于那些觉得难以理解的人,我只是要求将某个文本(要求输入时我们键入的文本,并且可以删除它)而不键入。就像如果要求用户输入并且我想提供默认输入以便用户不必输入。

从那以后,没有人回答。在经历了这么长时间的所有功能之后,我终于从 readline 库中找到了一个函数,正如 kostix 所说。所以,这是示例程序。

root@kali-linux:/tmp# cat main.go 
package main

import "github.com/chzyer/readline"
import "fmt"

func main() {
        input, _ := readline.New("> ");
        defer input.Close();

        datax := "Hey niko my friend"; //GTA IV
        data2 := []byte(datax);
        input.WriteStdin(data2);

        value, _ := input.Readline()
        fmt.Println(value);
}
root@kali-linux:/tmp# go run main.go 
> Hey niko my friend