首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >"GetOrCreate“--这个成语有固定的名字吗?

"GetOrCreate“--这个成语有固定的名字吗?
EN

Stack Overflow用户
提问于 2009-09-22 20:19:14
回答 4查看 3.9K关注 0票数 18

好的,考虑一下我们大多数人已经使用过很多次的这个常见的成语(我假设):

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++。因此有了这个标签。)

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-09-22 20:20:57

票数 5
EN

Stack Overflow用户

发布于 2009-09-22 20:23:54

我总是把这样的函数称为obtainSomething()

票数 9
EN

Stack Overflow用户

发布于 2009-09-22 20:25:19

这在某种程度上取决于你为什么要这么做--我见过的成语被称为memoization,called,initialisation on demand,create on first use。通常,我将该方法称为"ensureFoo“而不是"GetOrCreate”

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1462341

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档