Привет, ребята, я пытаюсь понять эти фрагменты синтаксиса:
S[] split(S)(S s) if (isSomeString!S)
{
...
}
а также
string join(in string[] words, string sep)
{
...
}
(Как показано в phobos/src/std/string.d
)
Насколько я могу судить, это фрагмент кода, который позволяет нам делать такие вещи, как:
string[] parts = "/foo/bar/baz".split("/"); // string[] {"foo", "bar", "baz"}
string part = parts.join("-"); // string "foo-bar-baz"
Что в основном заставляет меня поверить, что что-то вроде методов расширения, которые я знаю из CSharp, возможны в d. У меня проблемы:
- Что я не уверен на 100%, что смотрю здесь правильные объявления функций
- Что я не вижу, что делает их похожими.