Эй, ребята, я пытаюсь получить эти биты синтаксиса, чтобы сделать для меня смысл:Методы расширения в D?
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% уверен, что я смотрю на правильные объявления функций здесь
- То, что я не вижу, что делает их похожими.
Из документов: http://www.digitalmars.com/d/2.0/arrays.html#func-as-property. –