C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了C语句备选方案大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
是我,还是C似乎要求更多地使用’if’语句然后C#?

我有这个代码库,它包含很多这样的东西:

@H_419_13@if (strcmp((char*)type,"double")==0)

当有太多if语句时,我想知道它是不是有点’代码味道’?

我不是说不好,但是字符串比较之类的东西,涉及到很多字符串,它们不能以不同的方式完成吗?

是否只能编写if语句的序列?

这只是一个例子,它可以是任何类型的IF声明
代替:

@H_419_13@if (String a == "blah") then bla if (String b == "blah") then blo

解决方法

你这样做的原因(strcmp((char *)type,“double”)== 0)是因为你不能使“double”成为case-expression并使用switch语句.也就是说,如果你正在做很多这类字符串匹配,你可能想看看使用std :: map< std :: String,int>或者类似的东西,然后使用地图将字符串转换为索引,然后将其提供给切换.

就个人而言,在这些情况下,我喜欢std :: map< std :: String,int(Handler :: *)(void)>之类的东西,这让我可以创建方法的处理程序映射,但是ymMV .

编辑:我忘了提到:有一个方法字符串映射的另一个好处是你可以在运行时改变(通常添加)它.例如,解析器在知道它正在解析哪种文件后,可以在运行时更改其关键字及其处理程序列表.

大佬总结

以上是大佬教程为你收集整理的C语句备选方案全部内容,希望文章能够帮你解决C语句备选方案所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。