Hi there. I'm new to D language and make a simple software
monitoring new file with specified extension.
class FileList
{
str_CurrentDir;
bool ReturnMatchedFile(string str_arg_filename, string
str_Extension)
{
return endsWith(str_arg_filename, '.'~str_Extension);
}
void GetCurrentList(string str_arg_Extension)
{
auto
filter_CurrentList=filter!ReturnMatchedFile(str_arg_Extension,
dirEntries(str_CurrentDir, SpanMode.shallow));
}
}
with this FileList class, after making instance of FileList and
assigning str_CurrentDir variable, when I call
GetCurrentList("d"), it says that std.algorithm.filter! ~~ does
not match any function template declaration.
OK. So I modified above code like below just for a test.
class FileList
{
str_CurrentDir;
bool ReturnMatchedFile(string str_arg_filename)
{
return endsWith(str_arg_filename, ".d");
}
void GetCurrentList()
{
auto
filter_CurrentList=filter!ReturnMatchedFile(dirEntries(str_CurrentDir,
SpanMode.shallow));
}
}
And it says that
this for ReturnMatchedFile needs to be type FileList not type
FileResult!(ReturnMatchedFile, DirIterator).
I can't understand it!
Anyway, to solve the problem, again, I modified above code like
below.
static bool ReturnMatchedFile(string str_arg_filename)
{
return endsWith(str_arg_filename, ".d");
}
class FileList
{
str_CurrentDir;
void GetCurrentList()
{
auto
filter_CurrentList=filter!ReturnMatchedFile(dirEntries(str_CurrentDir,
SpanMode.shallow));
}
}
and it works.
What is the problem?
Best regards and happy new year! :)