模板 std.file.readText 无法从参数类型推导函数 !()(File)
template std.file.readText cannot deduce function from argument types !()(File)
我正在尝试使用 readText 函数:
import std.stdio;
import std.file;
string xmlName = r"D:\files3.xml";
File file;
void main()
{
writeln("Edit source/app.d to start your project.");
file = File(xmlName, "r");
string file_text = file.readText;
}
我遇到一个错误:
Error: template std.file.readText cannot deduce function from argument types !()(File), candidates are:
C:\D\dmd2\windows\bin\..\..\src\phobos\std\file.d(499,3): std.file.readText(S = string, R)(auto ref R name) if (isSomeString!S && (isInputRange!R && !isInfinite!R && isSomeChar!(ElementType!R) || is(StringTypeOf!R)))
我做错了什么?
readText
接受一个字符串参数,作为要读取的文件名。由于您已使用 File(xmlName, "r")
打开文件,因此您应该使用 std.stdio.File
.
中定义的方法
看来你想要的是将整个文件内容读入一个字符串。在这种情况下,我建议将 main
函数中的最后两行替换为 string file_text = readText(xmlName);
由于要使用std.file的readText(),需要稍微修改一下代码:
import std.stdio;
import std.file;
string xmlName = "D:/files/123.xml";
void main() {
writeln("Edit source/app.d to start your project.");
string file_text = file.readText(xmlName);
}
请注意,我们不再创建文件的实例,因为这里不需要它...
我正在尝试使用 readText 函数:
import std.stdio;
import std.file;
string xmlName = r"D:\files3.xml";
File file;
void main()
{
writeln("Edit source/app.d to start your project.");
file = File(xmlName, "r");
string file_text = file.readText;
}
我遇到一个错误:
Error: template std.file.readText cannot deduce function from argument types !()(File), candidates are:
C:\D\dmd2\windows\bin\..\..\src\phobos\std\file.d(499,3): std.file.readText(S = string, R)(auto ref R name) if (isSomeString!S && (isInputRange!R && !isInfinite!R && isSomeChar!(ElementType!R) || is(StringTypeOf!R)))
我做错了什么?
readText
接受一个字符串参数,作为要读取的文件名。由于您已使用 File(xmlName, "r")
打开文件,因此您应该使用 std.stdio.File
.
看来你想要的是将整个文件内容读入一个字符串。在这种情况下,我建议将 main
函数中的最后两行替换为 string file_text = readText(xmlName);
由于要使用std.file的readText(),需要稍微修改一下代码:
import std.stdio;
import std.file;
string xmlName = "D:/files/123.xml";
void main() {
writeln("Edit source/app.d to start your project.");
string file_text = file.readText(xmlName);
}
请注意,我们不再创建文件的实例,因为这里不需要它...