你最喜欢的C++编码风格是什么?我问的是样式或编码排版,例如你在哪里放大括号,在关键字后面有空格,缩进的大小等等.这与最佳实践或要求相反,例如总是删除数组delete[].
以下是我最喜欢的一个示例:在C++类初始值设定项中,我们将分隔符放在行的前面而不是后面.这样可以更容易地保持最新状态.这也意味着版本之间的源代码控制差异更清晰.
TextFileProcessor::
TextFileProcessor( class ConstStringFinder& theConstStringFinder )
: TextFileProcessor_Base( theConstStringFinder )
, m_ThreadHandle ( NULL )
, m_startNLSearch ( 0 )
, m_endNLSearch ( 0 )
, m_LineEndGetIdx ( 0 )
, m_LineEndPutIdx ( 0 )
, m_LineEnds ( new const void*[ sc_LineEndSize ] )
{
;
}
Run Code Online (Sandbox Code Playgroud) 在最近的一个风格问题的答案中,我写道
main = untilM (isCorrect 42) (read `liftM` getLine)
Run Code Online (Sandbox Code Playgroud)
和
isCorrect num guess =
case compare num guess of
EQ -> putStrLn "You Win!" >> return True
...
Run Code Online (Sandbox Code Playgroud)
Martijn帮助提出了替代方案:
main = untilM (isCorrect 42) (read <$> getLine)
EQ -> True <$ putStrLn "You Win!"
Run Code Online (Sandbox Code Playgroud)
使用Control.Applicative中的抽象可以使Haskell代码中的哪些常见模式更清晰?有效使用Control.Applicative时要记住哪些有用的经验法则?
我正在查看我正在使用的硬件接口的一些示例C++代码,并注意到以下几行中的许多语句:
if ( NULL == pMsg ) return rv;
Run Code Online (Sandbox Code Playgroud)
我敢肯定我听过有人说将常数放在第一位是一个好主意,但为什么呢?是否只是如果你有一个大的声明,你可以很快看到你正在比较什么,或者还有更多吗?
这个方法:
boolean containsSmiley(String s) {
if (s == null) {
return false;
}
else {
return s.contains(":)");
}
}
Run Code Online (Sandbox Code Playgroud)
可以等同地写成:
boolean containsSmiley(String s) {
if (s == null) {
return false;
}
return s.contains(":)");
}
Run Code Online (Sandbox Code Playgroud)
根据我的经验,第二种形式更常见,特别是在更复杂的方法中(可能有几个这样的退出点),"throw"和"return"也是如此.然而,第一种形式可以说使代码的条件结构更加明确.有什么理由比较喜欢一个吗?
(相关:一个函数应该只有一个return语句吗?)
我有这个丑陋的代码:
if ( v > 10 ) size = 6;
if ( v > 22 ) size = 5;
if ( v > 51 ) size = 4;
if ( v > 68 ) size = 3;
if ( v > 117 ) size = 2;
if ( v > 145 ) size = 1;
return size;
Run Code Online (Sandbox Code Playgroud)
如何摆脱多个if语句?
``Backtick%x{}百分比X <Backtick的替代语法system()fork()open()IO.popen()<表现相同open()open("|-")IO.popen("-")<表现相同open("|-")Open3.popen3()require 'open3'PTY.spawn()require 'pty'Shell.transact()require 'shell'编辑1. 非常感谢Avdi Grimm的帖子描述了每种方法的示例用法:#1(&gist); #2(&gist); #3.
他们是很好的资源来回答如何,但没有明确的组成来回答每个应该使用或为什么,并因此恕我直言这个问题不完整的答案.
据我所知,有三种方法可以在c中使用布尔值
#define FALSE 0 ... #define TRUE !(FALSE)我错过了其他方法吗?不同方法的优缺点是什么?
我想最快的是3号,2号更容易读取(尽管按位否定会略微增加开销),1是最易读的,与所有编译器不兼容.
我是Python的新手,因为我想扩展我使用R学习的技能.在RI中,往往会加载一堆库,有时会导致函数名称冲突.
什么是Python的最佳实践.我看到一些具体的变化,我没有看到它们之间的区别
import pandas,from pandas import *和 from pandas import DataFrame
前两个之间有什么区别,我应该只输入我需要的东西.此外,对于制作小程序来处理数据和计算简单统计数据的人来说,最糟糕的后果是什么.
UPDATE
我找到了这个出色的指南.它解释了一切.
在初始绘制新gem时,我需要将一些方法实现留空(将在下一个实现)
因此,我想发出一个"尚未实施"的例外情况
我想知道是否有一个特定于Ruby语言的最佳实践或标准约定来编写这种占位符/异常.
即:像:
在进入python之前,我开始使用一些Objective-C/Cocoa书籍.我记得,大多数函数都需要明确说明关键字参数.直到最近我才忘记了这一切,并在Python中使用了位置参数.但是最近,我遇到了一些由不正当的职位造成的错误 - 他们是偷偷摸摸的小东西.
让我思考 - 一般来说,除非有特殊需要非关键字参数的情况 - 有没有什么好的理由不使用关键字参数?即使是简单的功能,它总是被认为是不好的风格吗?
我觉得我的大多数50行程序已经定期扩展到500行或更多行,如果我习惯于总是使用关键字参数,那么随着代码的增长,代码将更易于阅读和维护.这可能不是这样的原因吗?
更新:
我得到的总体印象是它的风格偏好,有许多好的参数,它们通常不应该用于非常简单的参数,但在其他方面与良好的风格一致.在接受之前我只是想澄清一下 - 这种方法是否存在任何特定的非风格问题 - 例如,重要的性能命中?
coding-style ×10
c++ ×2
if-statement ×2
java ×2
python ×2
ruby ×2
c ×1
constants ×1
conventions ×1
haskell ×1
performance ×1
standards ×1
subprocess ×1
workflow ×1