如何修复Dart数据输入问题?VS Code报Global evaluation未实现错误
解决Dart代码在VS Code运行时的
UnimplementedError: Global evaluation not currently supported错误 问题场景
你编写的读取控制台输入的Dart代码:
import 'dart:io'; void main(List<String> arguments) { print("Enter your name:"); String? name = stdin.readLineSync(); print("Hello, $name!"); }
在VS Code中运行时触发错误:UnimplementedError: Global evaluation not currently supported.
原因及解决办法
这个错误的核心原因是你未通过正确方式启动完整程序,而是使用了VS Code调试控制台的全局代码评估功能(比如直接在控制台执行代码片段),但Dart调试器不支持这种全局执行模式。
按以下步骤修复:
- 正确启动程序:点击VS Code左侧运行图标(或按
F5),选择对应的Dart配置启动整个脚本,确保程序从main函数入口执行,而非在调试控制台单独运行代码片段。 - 配置launch.json:若没有自动生成运行配置,手动在项目的
.vscode文件夹下创建launch.json,内容如下:
该配置会让VS Code以当前打开的Dart文件为目标,从{ "version": "0.2.0", "configurations": [ { "name": "Dart", "type": "dart", "request": "launch", "program": "${file}" } ] }main函数启动程序。 - 终端直接运行:若不想依赖VS Code的运行功能,直接打开项目终端,执行
dart run 你的文件名.dart命令,这种方式也能正常读取控制台输入。
另外,运行时需将输入焦点切换到终端窗口,否则stdin.readLineSync()无法捕获你的输入内容。
内容的提问来源于stack exchange,提问作者Anton
相关产品推荐
相关产品推荐

