默认情况下调试器dlv使用调试控制台来调试程序,此时不能执行具有标准输入功能的函数调用,如
_, err := io.Copy(dst, os.Stdin);
解决方法是修改当前项目的launch.json文件,如下
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Launch Package",
"type": "go",
"request": "launch",
"mode": "auto",
"program": "${fileDirname}",
"console": "integratedTerminal"
}
]
}
将控制台"console"的值改为"integratedTerminal",即使用VSCode的集成控制台终端。