在下面的功能中,如果我将a
更改为kv
:
void main()
{
import std.algorithm.searching : minElement;
import std.stdio : writeln;
import std.array: byPair;
long[string] aa = [
"foo": 5,
"bar": 10,
"baz": 2000
];
writeln(aa.byPair().minElement!"a.value"().value);
}
编译器将引发以下错误消息:
/ dlang / dmd / linux / bin64 /../../ src / phobos / std / functional.d-mixin-215(215):错误:未定义的标识符kv/dlang/dmd/linux/bin64/../../src/phobos/std/algorithm/searching.d(1351):错误:模板实例std.functional.binaryFun!(“ kv.value”,“ a” ,“ b”)。binaryFun!(Tuple!(字符串,“ key”,long,“ value”),Tuple!(string,“ key”,long,“ value”))实例化错误/dlang/dmd/linux/bin64/../../src/phobos/std/algorithm/searching.d(1314):从此处实例化:极值!(__ lambda2,“ kv.value”,MapResult!(__ lambda2,结果),元组!(字符串,“键”,长整数,“值”))/dlang/dmd/linux/bin64/../../src/phobos/std/algorithm/searching.d(1398):从此处实例化:极值!((a)=> a,“ kv.value”, MapResult!(__ lambda2,结果))/dlang/dmd/linux/bin64/../../src/phobos/std/algorithm/searching.d(3550):从此处实例化:极值!(“ kv.value”,MapResult!(__ lambda2,结果) )onlineapp.d(12):从此处实例化:minElement!(“ kv.value”,MapResult!(__ lambda2,Result))
但是仅使用"a.value"
参数即可编译。 [a
]是什么意思?