好的,考虑一下我们大多数人已经使用过很多次的这个常见的成语(我假设):
class FooBarDictionary
{
private Dictionary<String, FooBar> fooBars;
...
FooBar GetOrCreate(String key)
{
FooBar fooBar;
if (!fooBars.TryGetValue(key, out fooBar))
{
fooBar = new FooBar();
fooBars.Add(key, fooBar);
}
return fooBar;
}
}
它有什么固定的名字吗?
(是的,它是用C#编写的,但是它可以“很容易”地传输到C++。因此有了这个标签。)
发布于 2009-09-22 20:20:57
发布于 2009-09-22 20:23:54
我总是把这样的函数称为obtainSomething()
。
发布于 2009-09-22 20:25:19
这在某种程度上取决于你为什么要这么做--我见过的成语被称为memoization,called,initialisation on demand,create on first use。通常,我将该方法称为"ensureFoo“而不是"GetOrCreate”
https://stackoverflow.com/questions/1462341
复制相似问题