Я использую Dart для создания классов контроллера в рамках проекта, используя сценарий, который я создал в каталоге инструментов. Скрипт запускается с помощью следующей команды терминала (в то время как в каталоге проекта, конечно):Интерпретация штриховки строки через скрипт запуска пула
dart tool/controller_create.dart controllerName
Это запускает следующий сценарий и использует интерполяцию строки, чтобы ввести имя в необходимых областях, принимая первый параметр «controllerName 'из консоли будет использоваться в качестве значения для „имя“ переменной в скрипте:
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“ в указанные области, а скорее «[имя_контроллера]», и мне остается интересно узнать, что вызывает это и как я могу его избежать?
Благодарим за внимание! Это первый управляемый терминалом сценарий, который я сделал, поэтому я извиняюсь, если это нормальное поведение для переданных через терминал переменных.