我正在使用 Dart 使用我在工具目录中创建的脚本将控制器类生成到项目框架中。该脚本使用以下终端命令运行(当然在项目目录中):
dart tool/controller_create.dart controllerName
这将运行以下脚本并使用字符串插值将名称注入必要的区域,将控制台中的第一个参数“controllerName”用作脚本中“name”变量的值:
import 'dart:io';
void main(String name)
{
String content = """
part of controllers;
class $name extends Controller
{
//-------------------------------------------------------------------------------------------
// Functions
//-------------------------------------------------------------------------------------------
/**
* Passes parameters and initialises superclass constructor
*/
$name () : super(new VirtualDirectory(root_package_dir))
{
virtualDirectory.allowDirectoryListing = false;
virtualDirectory.jailRoot = true;
}
//-------------------------------------------------------------------------------------------
// Functions - Controllers
//-------------------------------------------------------------------------------------------
void index (HttpRequest request)
{
virtualDirectory.serveFile(new File(views_dir + "/index.html"), request);
}
}
""";
new File('$name.dart').writeAsString(content).then((File file)
{
});
}
但是,我遇到的问题是给定的字符串不只是将“controllerName”注入指定区域,而是“[controllerName]”,这让我想知道是什么原因造成的,我该如何避免呢?
感谢您的阅读!这是我制作的第一个终端驱动脚本,如果这是终端传递变量的正常行为,我深表歉意。