SEO爱站网 logo SEO爱站网

编程语言函数返回值处理方式排名

seo基础 1021 0 2021-07-11 08:15:34

一个函数一个返回值 , 这好像跟祖宗定下的规则似的,各个时代主流编程语言几乎都严格遵守着。然而, 在实际情况下, 程序员写代码经常会碰到一个函数会返回多个返回值这种需求, 比如说一个带分页功能的函数 ,需要要返回数据列表和总记录数两个值; 一个http请求函数需要返回状态码和响应内容两个值。这样的情况比比皆是。 面对这种需求,每一种语言都有自己的一套应对方法。 下面我们来对各主流语言实现方法的好坏来进行一下排名。

第一名:golang

golang的函数天生就支持多返回值这个特性, 一个函数可以返回任意数量的返回值。

编程语言函数返回值处理方式排名

所以, 在这一点上, 其它语言和golang没得比。

第二名:Python

python虽然不像golang一样函数支持同时可返回多个值 , 然而, python中有一项语法元素「元组」, 元组中可包含任意数量任意类型的值。

编程语言函数返回值处理方式排名

当然, 一些语法元素中有元组的语言, 都支持这样的写法, 如F#,haskell等

第三名:c#

c#不支持多返回值函数, 也没有元组语法,但是它有自带的元组类库可以使用, 虽然比较臃肿丑陋,但是代码的设计思路却是正确的。

编程语言函数返回值处理方式排名

c#的元组相对于python来说实现显的不够优雅。虽然在c#中还有ref和out类型的参数可以变相实现一个函数返回多个值 , 然而,这真的不是一种美丽的做法, 非常的不推荐。

第四名:php

php的数组可以将多个值装在一起返回, 但这是最老土最原始的做法, 没有什么值的称道的,本来应该和其它语言并列倒数第一的, 但是,php中的list关键字可用于数组的解构 , 这算是一点优势, 因此, 将php向前提升一名, 位列第四。

编程语言函数返回值处理方式排名

php的写法看起来比c#要方便和优雅, 但是,任何数组都是同一个类型, 不管里面有几个元素, 因此, php灵活的写法是建立在安全性差的前提之上的,所以,不如c#。 切记, 数组并非元组,每个元组都是独一无二的类型, 而任何数组都是同一种类型。

Java、JavaScript、c、c++并列倒数第一

代码我都懒的贴

结论

除了像golang这种有先天优势的语言, 对于多返回值函数的推荐解决方案就是使用「元组」, 如果语言本身不支持元组, 那么可以通过语言的其它特性模拟一个元组的实现。

网友跟帖
展开