皆さん、私はこれらの構文を理解できるようにしようとしています:
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%確信が持てないこと
- 何が似ているのかわかりません。