首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

对于通常会返回void的函数,返回字符串是否被认为是不好的做法?

对于通常会返回void的函数,返回字符串被认为是不好的做法。通常情况下,函数的返回值应该与其功能和目的相匹配。如果函数的目的是执行某些操作而不需要返回结果,那么返回void是合理的。但如果函数的目的是返回一个字符串,那么返回void将无法满足需求。

返回字符串的好处是可以将函数的结果传递给调用者,使其能够进一步处理或显示。这在很多情况下是非常有用的,比如在前端开发中,可以将函数返回的字符串用于动态生成网页内容。另外,在后端开发中,返回字符串可以作为API的响应,方便客户端获取数据。

然而,返回字符串也存在一些问题。首先,返回字符串会增加函数的复杂性,因为需要在函数内部创建和管理字符串变量。其次,返回字符串可能会导致内存泄漏或资源浪费,因为调用者可能忘记释放返回的字符串。此外,返回字符串还可能导致函数的可测试性降低,因为需要验证返回的字符串是否符合预期。

因此,对于通常会返回void的函数,如果需要返回字符串,更好的做法是将函数的返回类型设置为字符串,并在函数内部创建和返回相应的字符串。这样可以提高代码的可读性和可维护性,并减少潜在的错误和资源泄漏问题。

腾讯云相关产品和产品介绍链接地址:

  • 云函数(Serverless):https://cloud.tencent.com/product/scf
  • 云开发(CloudBase):https://cloud.tencent.com/product/tcb
  • 云数据库(TencentDB):https://cloud.tencent.com/product/cdb
  • 云存储(COS):https://cloud.tencent.com/product/cos
  • 人工智能(AI):https://cloud.tencent.com/product/ai
相关搜索:对于返回成员函数的int,Future get()返回void使用查询字符串键/val对作为路由机制是否被认为是不好的做法?为什么从main()显式返回0被认为是良好的做法?是/应该将包装函数转换为monad变换器被认为是不好的做法?在必须返回true或false的函数上键入提示返回值是不好的做法对于return true,void函数中存在意外的非void返回值如何查看传递给函数的函数指针是否返回void?在React Native中使用固定数字设置高度和宽度是否被认为是不好的做法?对于函数被调用的次数,Sinin不会返回正确的数字当一个参数被遗漏时,返回所有的结果是不好的做法吗?在构造函数中使用原始指针并打算立即将其包装在智能指针中,这被认为是不好的做法吗?用大括号连接字符串而不是+运算符是否被认为是pythonic和/或良好的做法?带有字符串参数的VOID函数和带有字符串参数的返回char数组的函数之间的区别?是否存在仅返回子字符串/部分值的SQLite函数当我们从函数返回时,函数的堆栈框架是否被清除,或者它是否就这样保留在堆栈上是否有一个函数可以根据所单击的按钮返回数字(当被调用时添加到整数对向量和字符串向量的元素在函数返回时被清除如何编写python函数来检查给定的字符串是否在值中并返回键在Python中,是否有函数或方法可以返回列表或字符串中字符的位置值?
相关搜索:
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

「音视频直播技术」JNI编程常见问题

其实,可以不需要显式注册JNI方法,也不需要提供JNI_OnLoad函数。您可以使用以特定方式命名Native方法。但这种方式很不好,因为如果方法签名是错,直到第一次它被使用时你才知道它出错了。...请注意,UTF-16字符串不是以零终止,\u0000认为是正常数据,所以你需要自己保存字符串长度以及jchar指针。 不要忘记释放你获得字符串。...字符串函数返回jchar *或jbyte *,它们是C样式指向原始数据指针,而不是本地引用。它们保证有效,直到调用Release,这意味着当native方法返回时它们不会自动释放。...Release函数mode参数有三种值。运行时行为依赖于返回是实际数据指针还是其副本: 0 实际:数组对象是非固定。 复制:数据被复制回来。具有副本缓冲区释放。...扩展检查 JNI几乎没有错误检查,错误通常会导致崩溃。Android提供了一种称为CheckJNI模式,在调用标准实现之前,将JavaVM和JNIEnv函数表指针切换到执行扩展系列检查函数表。

1.6K20
  • Android 混合开发之JsBridge

    ,这个js文件有的产品做法是让前端自己加载,有的做法是客户端注入,也就是通过loadUrl("javascript:...")注入。...线程必须要等待UI线程中onJsPrompt返回才会唤醒,可以认为是个同步阻塞调用(应该是通过线程等待来做)。...函数一定会阻塞等待10s才返回,这个设计就要求我们不能在onJsPrompt中做耗时操作,systrace中可以验证。...prompt一个坑导致js挂掉 从表现上来看,onJsPrompt必须执行完毕,prompt函数才会返回,否则js线程会一直阻塞在这里。...实际使用中确实会发生这种情况,尤其是APP中有很多线程场景下,怀疑是这么一种场景: 第一步:js线程在执行prompt时挂起, 第二部 :UI线程调度,恰好销毁了Webview,调用了 (webview

    2.2K20

    Chapter 5: Rvalue References, Move Semantics, PF

    也就是说,在拷贝返回函数中,w要么RVO优化,要么实际上被执行为return std::move(w);。...return w; ---> return std::move(w); //编译器认为是一个右值 } 4....对于用户自定义类型而言,他们是继承自自身,也就是说std::is_base_of会返回为true,但是当T是内建类型时,就会返回为false。...对于长度较短字符串,它们会被存储在std::string对象自身空间中,而不是新开辟一块堆内存来存放内容,在这种情况下,移动和拷贝代价将会是一样。...在例子中,正确做法应该是 auto il = {1,2,3}; fwd(il); 因为,花括号初始化对于auto变量类型推导是可以推导成std::initializer_list对象,而有了具体类型之后

    5.1K40

    Vue 选手转 React 常犯 10 个错误,你犯过几个?

    当我们输入一个项目并提交表单时,该项目没有添加到购物清单中。 问题就在于我们违反了也许是 React 中最核心原则 —— 不可变状态。React依靠一个状态变量地址来判断状态是否发生了变化。...还有就是样式,在 HTML 中,style 写成一个字符串: Hello World </button...如果你从 useEffect 钩子函数返回任何东西,它必须是一个清理函数,此函数将在组件卸载时运行。相当于类组件中 componentWillUnmount 生命周期方法。...异步函数也总是返回一个 Promise;如果函数还没有返回,则返回值会自动包装在 Promise 中。...按照上面那种写法,箭头函数直接指向就是返回值,就相当于是返回了一个promise函数了,就不再是一个清理函数了。

    22910

    现代C++之容器

    1.string string 是模板 basic_string 对于 char 类型特化,可以认为是一个只存放字符 char 类型数据容器。...,如果这个参数省略,那么就调用不带第二个参数resize函数。...4.queue与stack (1)为什么 stack(或 queue) pop 函数返回类型为 void,而不是直接返回容器 top(或 front)成员?...跳出 C++ 语境,map(映射)更常见名字是关联数组和字典 ,而在 JSON 里直接被称为对象(object)。在 C++ 外这些容器常常是无序;在 C++ 里关联容器则认为是有序。...但这取决于我们是否使用了一个好哈希函数:在哈希函数选择不当情况下,无序关联容器插入、删除、查找性能可能成为最差情况 O(n),那就比关联容器糟糕得多了。

    1K10

    干货 | 如何写一个更好Python函数

    这个函数命名第一个问题是它使用了缩写。 对于那些并不出名缩略词来说,使用完整英语单词会更好。...对于大多数命名比较好函数来说,很明显有一些东西会从函数返回,它名字将反映这一点。 from_df也不是必要。如果没有明确参数名称,函数文档字符串或类型注释会描述参数类型。...如果你不能写一个清晰文档字符串来描述函数做什么,就说明你需要再考虑考虑为什么要写这个函数了。 返回函数可以认为是一些独立程序。它们以参数形式接受一些输入,并返回一些结果。...首先,尽最大努力避免这种做法。用好了令人惊讶,用不好非常危险。 其次,即使这样做不可行,复制某个参数成本太高,你也可以回到上一条建议。 “我需要返回多个值。单独返回一个值是没有意义。”...例如,如果上面add_three(number)幂等版本在返回结果之前打印了结果,那么它仍然认为是幂等,因为当它访问I / O流时,这个访问与从函数返回值无关。

    60720

    干货 | 如何写一个更好Python函数

    这个函数命名第一个问题是它使用了缩写。 对于那些并不出名缩略词来说,使用完整英语单词会更好。...对于大多数命名比较好函数来说,很明显有一些东西会从函数返回,它名字将反映这一点。 from_df也不是必要。如果没有明确参数名称,函数文档字符串或类型注释会描述参数类型。...如果你不能写一个清晰文档字符串来描述函数做什么,就说明你需要再考虑考虑为什么要写这个函数了。 返回函数可以认为是一些独立程序。它们以参数形式接受一些输入,并返回一些结果。...首先,尽最大努力避免这种做法。用好了令人惊讶,用不好非常危险。 其次,即使这样做不可行,复制某个参数成本太高,你也可以回到上一条建议。 “我需要返回多个值。单独返回一个值是没有意义。”...例如,如果上面add_three(number)幂等版本在返回结果之前打印了结果,那么它仍然认为是幂等,因为当它访问I / O流时,这个访问与从函数返回值无关。

    60410

    怎样才能写好一个 Python 函数

    这个函数命名第一个问题是它使用了缩写。 对于那些并不出名缩略词来说,使用完整英语单词会更好。...对于大多数命名比较好函数来说,很明显有一些东西会从函数返回,它名字将反映这一点。 from_df 也不是必要。如果没有明确参数名称,函数文档字符串或类型注释会描述参数类型。...如果你不能写一个清晰文档字符串来描述函数做什么,就说明你需要再考虑考虑为什么要写这个函数了。 4. 返回函数可以认为是一些独立程序。它们以参数形式接受一些输入,并返回一些结果。...如果操作顺利完成,函数可以返回 True。 “我们修改了其中一个参数,将其用作参考参数。” 这里有两点需要注意。首先,尽最大努力避免这种做法。用好了令人惊讶,用不好非常危险。...例如,如果上面 add_three(number)幂等版本在返回结果之前打印了结果,那么它仍然认为是幂等,因为当它访问 I / O 流时,这个访问与从函数返回值无关。

    57220

    阿里架构师带你深入浅出jvm

    对于每个方法执行,都会有一个新frame创建并入栈到栈顶部。当方法正常返回或在方法执行过程中遇到未捕获异常时frame会被出栈。...Frame 对于每一个方法执行,一个新frame会被创建并入栈到栈顶。当方法正常返回或在方法执行过程中遇到未捕获异常,frame会被出栈。...那些仍然存活着对象将被从年轻代移动到老年代 永久代会在每次老年代回收时候同时进行,它们在两者中其一满了之后都会被回收 JIT编译 JIT具体做法是这样:当载入一个类型时,CLR为该类型创建一个内部数据结构和相应函数...对于符号表组织、构造和管理方法好坏会直接影响编译系统运行效率。 在JVM中,内部字符串存储在字符串表中。...另外字符串实例可以通过调用String.intern()来明确地内部化。当String.intern()调用,如果符号表里已经包含该字符串,那么指向该字符串引用将被返回

    69320

    JavaScript(四)

    注意: 在很多语言中,字符串以对象形式来表示,因此认为是引用类型。ECMAScript 放弃了这一传统。 动态属性 对不同类型值可以执行操作则大相径庭。...对于引用类型值,我们可以为其添加属性和方法,也可以改变和删除其属性和方法。...然后,我们为该对象添加了一个名为 name 属性,并将字符串值 “Nicholas” 赋给了这个属性。紧接着,又通过 alert() 函数访问了这个新属性。...在 Web 浏览器中,全局执行环境认为是 window 对象,因此所有全局变量和函数都是作为 window 对象属性和方法创建。 每个函数也都有自己执行环境。...当执行流进入一个函数时,函数环境就会被推入一个环境栈中。而在函数执行之后,栈将其环境弹出,把控制权返回给之前执行环境。

    36020

    编写高效Android代码

    下面是一件有帮助例子: 当从原始输入数据中提取字符串时,试着从原始字符串返回一个子字符串,而不是创建一份拷贝。你将会创建一个新字符串对象,但是它和你原始数据共享数据空间。...如果你有一个返回字符串地方法,你应该知道无论如何返回结果是StringBuffer,改变你函数定义和执行,让函数直接返回而不是通过创建一个临时对象。...一般来说明智做法是使用Map,因为它能够允许你改变Map接口执行上面的任何东西,但是这种“明智”方法只是适用于常规编程,对于嵌入式系统并不适合。...通过接口引用来调用会花费2倍以上时间,相对于通过具体引用进行虚拟函数调用。 如果你选择使用一个HashMap,因为它更适合于你编程,那么使用Map会毫无价值。...这运行更快并且去除了生成函数前面 东西。(不幸是,它同时也意味着该属性也能够相同包下面的其他类直接访问,这违反了标准面向对象使所有属性私有的原则。

    60930

    深入理解 Java 中 Lambda

    (arg); } } 关于oneStringArgumentMethod函数类型,与之相关有:它函数是静态返回类型是void,它接受一个String类型参数。...它必须包含一个名为apply函数函数返回类型必须是void函数必须接受一个String类型可以转换到对象参数。...Lambda表达式返回值类型是从Lambda实现推断出来对于参数类型,我不完全确定,但我认为必须从Lambda表达式所处上下文中推断出参数类型。...最后编译器必须检查返回值类型是否与Lambda上下文匹配,以及参数类型是否与Lambda实现匹配。 这一切都可以在编译期间完成,根本没有运行时开销。...Python社区很早就意识到了这一点 - 虽然Python也有Lambda,但它若广泛使用则通常被认为是不好风格(当嵌套函数可以使用时,它并不难于规避)。对于Java来说,我会给出类似的建议。

    1K20

    使用冒泡排序模拟实现qsort函数

    , 第四个为一个函数指针,需要使用者自己定义, 函数指针有两个指针类型参数, 返回值为整形,当p1 > p2时返回1, 当p1 < p2 时返回-1, 当p1 = p2 时返回0. 1.使用qsort函数排序整型数据...字符串旋转结果 写一个函数,判断一个字符串是否为另外一个字符串旋转之后字符串。 例如:给定s1 =AABCD和s2 = BCDAA,返回1 给定s1=abcd和s2=ACBD,返回0....AABCD左旋一个字符得到ABCDA AABCD左旋两个字符得到BCDAA AABCD右旋一个字符得到DAABC 问题解析: 本题当然可以将所有旋转后结果放到一个数组里,然后进行查找,但是这种做法不好操作...,也太费事,但是这题有一个很简单做法: 其实ABCDE无论怎么旋,旋转后所有结果,都包含在了ABCDEABCD这个字符串里了。...所以做法很简单,只需要将原字符串再来一遍接在后面,然后找一找待查找字符串是不是两倍原字符串子集即可。

    6010

    Cocos2d-x中使用音频CocosDenshion引擎介绍与音频文件预处理

    SimpleAudioEngine有几个经常使用函数void preloadBackgroundMusic (const char *pszFilePath) 预处理背景音乐文件,将压缩格式文件进行解压处理...void pauseEffect (unsigned int nSoundId) 暂停播放音效,參数nSoundId 是playEffect函数返回ID。...void resumeEffect (unsigned int nSoundId) 继续播放音效,參数nSoundId 是playEffect函数返回ID。...void stopEffect (unsigned int nSoundId) 停止播放音效,參数nSoundId 是playEffect函数返回ID。...不管是播放背景音乐还是音效在播放之前进行预处理是有必要,这个过程是对于音频文件进行解压等处理,预处理仅仅须要在整个游戏执行过程中处理依次就能够了。

    64520

    大话 JavaScript(Speaking JavaScript):第六章到第十章

    这是推荐转换方法: > String(123) '123' 提示 最好做法是避免使用包装对象。通常情况下,您不需要它们,因为对象不能做事情原始值都可以做(除了改变)。...字符串解析。 首先将对象转换为原始值(稍后讨论),然后将其转换为数字。 String()(参见转换为字符串) 将值转换为字符串对于所有原始值,它都有明显结果。...PreferredType也可以省略;然后它被认为是日期String,而对于所有其他值,则认为是Number。这就是运算符+和==调用ToPrimitive()方式。...对于日期,首先调用obj.toString()。 如果任一操作数是字符串,则将两者转换为字符串返回结果连接。 否则,将两个操作数转换为数字,并返回结果总和。...引擎允许创建值,对于这些值,typeof返回任意字符串(与表中列出所有结果不同)。

    30910

    PHP 代码简洁之道(小结)

    = 'Hipster Brew Co.'): void { // ... } 对比 使用 相等运算符 不好做法: $a = '42'; $b = 42; 使用简单相等运算符会把字符串类型转换成数字类型...= b 会返回 false 但实际上它应该是 true ! 字符串类型 ’42’ 是不同于数字类型 42 好做法: 使用全等运算符会对比类型和值 if( $a !...== $b ) { //这个条件是通过 } 表达式 a !== b 会返回 true。 函数 函数参数(2 个或更少) 限制函数参数个数极其重要 这样测试你函数容易点。...$name); } 避免副作用 一个函数应该只获取数值,然后返回另外数值,如果在这个过程中还做了其他事情,我们就称为副作用。...如果你类或函数有 if 语句,这就告诉了使用者你类或函数干了不止一件事情。 记住,只要做一件事情。 不好: class Airplane { // ...

    1.2K31
    领券