最佳编码hdu_如果–否则为编码风格最佳实践

最佳编码hdu

以下文章将是一个高级大括号讨论,没有对与错的答案,只是更多的“品味”。 它是关于是否将“ else”(以及其他关键字,例如“ catch”,“ finally”)放在换行符上。



有些人可能会写

if (something) {doIt();
} else {dontDoIt();
}

但是,我更喜欢

if (something) {doIt();
} 
else {dontDoIt();
}

看起来很愚蠢。 但是评论呢? 他们去哪里? 这在我看来有点不对劲:

// This is the case when something happens and blah
// blah blah, and then, etc...
if (something) {doIt();
} else {// This happens only 10% of the time, and then you// better think twice about not doing itdontDoIt();
}

以下不是更好吗?

// This is the case when something happens and blah
// blah blah, and then, etc...
if (something) {doIt();
}// This happens only 10% of the time, and then you
// better think twice about not doing it
else {dontDoIt();
}

在第二种情况下,我实际上是分别记录“ if”和“ else”情况。 我没有记录对“ dontDoIt()”的调用。 这可以进一步:

// This is the case when something happens and blah
// blah blah, and then, etc...
if (something) {doIt();
}// Just in case
else if (somethingElse) {doSomethingElse();
}// This happens only 10% of the time, and then you
// better think twice about not doing it
else {dontDoIt();
}

或使用try-catch-finally:

// Let's try doing some business
try {doIt();
}// IOExceptions don't really occur
catch (IOException ignore) {}// SQLExceptions need to be propagated
catch (SQLException e) {throw new RuntimeException(e);
}// Clean up some resources
finally {cleanup();
}

看起来很整洁,不是吗? 与此相反:

// Let's try doing some business
try {doIt();
} catch (IOException ignore) {// IOExceptions don't really occur
} catch (SQLException e) {// SQLExceptions need to be propagatedthrow new RuntimeException(e);
} finally {// Clean up some resourcescleanup();
}

我很好奇您的想法...

参考: if – else –来自JAVA,SQL和ANDJOOQ博客的JCG合作伙伴 Lukas Eder的编码风格最佳实践 。


翻译自: https://www.javacodegeeks.com/2012/01/if-else-coding-style-best-practices.html

最佳编码hdu

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/357068.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

自定义UserProvider,更改验证方法

新建UserProvider,如果继承EloquentUserProvider,注入model是必须的,或者去继承interface,自己实现一些方法 use Illuminate\Auth\EloquentUserProvider; use Illuminate\Contracts\Auth\Authenticatable as UserContract;class M…

一些前端大牛都在学习的github库

前端知识比较杂,长时间的工作容易沉浸在业务当中,技术提升有限,这里发现了前端的新大陆,可以帮助小伙伴们巩固基础知识,完善自己的知识体系,欢迎点赞收藏,兄弟们,赶紧干起来吧! 1.JavaScript 算法和数据结构https://github.com/trekhleb/javascript-algorithms 数据结…

【TypeScript系列教程01】入门介绍

目录 什么是TypeScript? TypeScript 的过去与现在? JavaScript 与 TypeScript 的区别? 类型批注 第一个 TypeScript 实例 编译器

SQL Server 中截取字符串常用的函数

SQL Server 中截取字符串常用的函数:1.LEFT ( character_expression , integer_expression ) 函数说明:LEFT ( 源字符串 , 要截取最左边的字符数 ) 返回从字符串左边开始指定个数的字符 select LEFT(SQL_Server_2008,4 ); 返回结果:SQL_2.RI…

动态Java代码注入

在本文中,我们将研究如何将Java代码动态加载到正在运行的jvm中。 该代码可能是全新的,或者我们可能想更改程序中某些现有代码的功能。 (在开始之前,您可能想知道为什么到底有人会这样做。显而易见的示例是规则引擎之类的东西。规…

【TypeScript系列教程02】安装及使用

目录 TypeScript 安装 NPM 安装 TypeScript 测试安装结果 本教程使用VSCode TypeScript 安装 我们需要使用到 npm ,你需要安装Node.js; NPM 安装 TypeScript 如果你的本地环境已经安装了 npm 工具,可以使用以下命令来安装: npm install -g typescript

'scrapyd-deploy' 不是内部或外部命令,也不是可运行的程序 或批处理文件。

在windows上使用scrapyd-client 安装后,并不能使用相应的命令scrapyd-deploy 需要在"C:\Python27\Scripts" 目录下 增加scrapyd-deploy.bat文件 内容填充为: echo off "C:\python27\python.exe" "C:\python27\Scripts\scrapyd…

【TypeScript系列教程03】基础语法

目录 TypeScript 基础语法 空白和换行 TypeScript 区分大小写 分号是可选的 TypeScript 注释 TypeScript 支持两种类型的注释

ccxt k线数据_寻找相似的历史k线

有网友提问应该用什么样的数据库/数据结构/算法来计算某支股票的相似K线? 具体的问题描述是,假设给出某股某段行情K线(单位/日),从任何其他股票历史中匹配出与之最为相似的某段历史K线,并给出相似度值(单位…

java引用 弱引用_了解Java弱引用

java引用 弱引用我最近没来得及关注这个博客,最重要的是,我没有为与技术界的所有人保持联系而致歉。 最近,我偶然发现了自Java 1.2起可用的java.lang.ref软件包,但具有讽刺意味的是,几天前我才知道它。 在浏览了几篇有…

【TypeScript系列教程04】编译参数

目录 编辑单个 .ts 文件 编辑多个 .ts 文件 tsc 常用编译参数 编辑单个 .ts 文件 通常我们使用 .ts 作为 TypeScript 代码文件的扩展名。 然后执行以下命令将 TypeScript 转换为 JavaScript 代码: tsc sunjiaoshou.js 编辑多个 .ts 文件 我们可以同时编译多个 ts 文件: …

传递数组到 Shader

https://chengkehan.github.io/UniformArray.html 转载于:https://www.cnblogs.com/jim-game-dev/p/5658023.html

k均值例子 数据挖掘_数据挖掘的技术有很多种,常用的数据挖掘技术就这13种...

数据挖掘就是从大量的、不完全的、有噪声的、模糊的、随机的数据中,提取隐含在其中的、人们事先不知道的但又是潜在有用的信息和知识的过程。数据挖掘的任务是从数据集中发现模式,可以发现的模式有很多种,按功能可以分为两大类:预…

【TypeScript系列教程05】保留关键字

目录 TypeScript 保留关键字 TypeScript 保留关键字 TypeScript 保留关键字如下表所示:

Lucene组件概述

本文是我们名为“ Apache Lucene基础知识 ”的学院课程的一部分。 在本课程中,您将了解Lucene。 您将了解为什么这样的库很重要,然后了解Lucene中搜索的工作方式。 此外,您将学习如何将Lucene Search集成到您自己的应用程序中,以…

中国剩余定理 互质与非互质版本

中国剩余定理互质版 设m1,m2,m3,...,mk是两两互素的正整数,即gcd(mi,mj)1,i!j,i,j1,2,3,...,k. 则同余方程组: x a1 (mod n1) x a2 (mod n2) ... x ak (mod nk) 模[n1,n2,...nk]有…

aix 的c库为什么都是静态库_卢卡库:若梅罗、莱万都在努力突破极限,为什么我不能做到呢...

直播吧12月8日讯 北京时间周四凌晨的欧冠小组赛末轮比赛,国米将在主场迎战顿涅茨克矿工。目前,蓝黑军团依然保留着些许出线希望。在这场比赛之前,国米射手卢卡库接受了《法国足球》的采访,他谈论了和孔蒂的关系、和劳塔罗的搭档以…

【TypeScript系列教程06】基础类型

目录 TypeScript 基础类型 任意类型 (any) 变量的值会动态改变时 改写现有代码时 定义存储各种类型数据的数组时 数字类型 (number)

便携式不锈钢管道焊接机器人_304不锈钢管居然可以发黑?

大家好,我是圣联达不锈钢管材管件孙立成。今天有伙伴们问我,自己使用的304不锈钢管表面怎么发黑了。带着这个问题,今天我特意去梳理了有关304发黑的缘故及其解决方法。304不锈钢管实际上按照正常生产流程,好的304不锈钢管加工制做…

jrockit_Java堆空间– JRockit和IBM VM

jrockit本文将为您提供JRockit Java堆空间与HotSpot VM的概述。 它还将为您提供有关JRockit和HotSpot的Oracle未来计划的一些背景知识。 Oracle JRockit VM Java堆:2个不同的内存空间 -Java堆(YoungGen和OldGen) -本机内存空间(…