通过与 Jira 对比,让您更全面了解 PingCode

  • 首页
  • 需求与产品管理
  • 项目管理
  • 测试与缺陷管理
  • 知识管理
  • 效能度量
        • 更多产品

          客户为中心的产品管理工具

          专业的软件研发项目管理工具

          简单易用的团队知识库管理

          可量化的研发效能度量工具

          测试用例维护与计划执行

          以团队为中心的协作沟通

          研发工作流自动化工具

          账号认证与安全管理工具

          Why PingCode
          为什么选择 PingCode ?

          6000+企业信赖之选,为研发团队降本增效

        • 行业解决方案
          先进制造(即将上线)
        • 解决方案1
        • 解决方案2
  • Jira替代方案

25人以下免费

目录

函数直接返回和传递引用的区别和取舍

函数直接返回和传递引用的区别和取舍是:可以使用全局的错误代码,这样就可以返回函数结果。可以使用函数返回值作为结果代码,函数的传出参数可以做成引用型参数。也可以把结果和错误码绑在一起,一同返回。

一、函数直接返回和传递引用的区别和取舍

可以使用全局的错误代码,这样就可以返回函数结果。

可以使用函数返回值作为结果代码,函数的传出参数可以做成引用型参数。

也可以把结果和错误码绑在一起,一同返回。

返回值的方式返回一般是:

1,返回值是内置类型(int, float)

2,不需要考虑返回对象拷贝开销(编译器有返回值优化)

3,函数执行出错可以通过构造一个错误的对象或者值返回表示错误

4,函数只返回一个值

// 想到再补充…

经常函数会写成这样:

BOOL XXX(const YYObject& param, ZZObject* result);

返回BOOL指示函数是否正常返回,输入参数写成常量引用放在前面,输出参数使用指针放在后面。

延伸阅读:

二、java中HashMap的keySet()和values()

我们通常说,keySet()返回所有的键,values()返回所有的值,其实是不太对的,因为无论是keySet()和values(),其实都没有实质的内容,且容我慢慢说来。

他们前者返回了一个Set,后者返回了一个Collection,但是Set和Collection都只是接口,既然是接口,那就大有文章可以做。很重要的一点就是,接口可以不是new someClass()的来的,也就是说,它可以不对应与一个类,而只提供一些方法。实际上,HashMap中所有的数据都是放在一个Node<E,V>[]的数组中的,而返回的Set接口也好,Collection也罢,都是直接针对这个Node<E,V>[]数组的,所以,当使用返回的Set接口或者Collection接口进行操作是,实际上操作的还是那个Node<E,V>[]数组。但是,返回的Collection只能做有限的操作,限定哪些呢?一句话总结就是:只能读,不能写,但能删能清。

相关文章