标签: coding-style

PHP短标签是否可以使用?

这是根据官方文档的信息:

可以在PHP中使用四对不同的开始和结束标记.其中两个,<?php ?> 并且<script language="php"> </script>始终可用.另外两个是短标签和ASP样式标签,可以从php.ini配置文件打开和关闭.因此,虽然有些人发现短标签和ASP样式标签很方便,但它们的便携性较差,一般不推荐.

在我的经验,大多数服务器启用短标记.打字

<?=
Run Code Online (Sandbox Code Playgroud)

打字要方便得多

<?php echo 
Run Code Online (Sandbox Code Playgroud)

程序员的便利是一个重要因素,为什么不推荐他们?

php coding-style php-shorttags

518
推荐指数
13
解决办法
11万
查看次数

在JavaScript中将数字转换为字符串的最佳方法是什么?

什么是将数字转换为字符串的"最佳"方式(在速度优势,清晰度优势,内存优势等方面)?

一些例子:

  1. String(n)

  2. n.toString()

  3. ""+n

  4. n+""

javascript string performance coding-style numbers

479
推荐指数
12
解决办法
37万
查看次数

typeof!=="undefined"vs.!= null

我经常看到JavaScript代码检查未定义的参数等,这样:

if (typeof input !== "undefined") {
    // do stuff
}
Run Code Online (Sandbox Code Playgroud)

这似乎有点浪费,因为它涉及类型查找和字符串比较,更不用说它的详细程度.这是必要的,因为'undefined'可以重命名.我的问题是:代码如何比这种方法更好:

if (null != input) {
    // do stuff
}
Run Code Online (Sandbox Code Playgroud)

据我所知,你不能重新定义null,所以它不会意外地破坏.并且,由于!=运算符的类型强制,这将检查undefined和null ...这通常正是您想要的(例如,对于可选的函数参数).然而,这种形式似乎并不普遍,它甚至会导致JSLint对你使用邪恶的!=运算符大喊大叫.为什么这被认为是不好的风格?

javascript coding-style

473
推荐指数
6
解决办法
59万
查看次数

有没有更好的写v =(v == 0?1:0)的方法;

我想在0和1之间切换变量.如果它是0我想将其设置为1,否则如果它是1我想将其设置为0.

这是我经常写的一个基本操作,我想研究最短,最清晰的方法.到目前为止,这是我最好的:

v = (v == 0 ? 1 : 0);
Run Code Online (Sandbox Code Playgroud)

你能改进吗?

编辑:问题是询问如何在保留清晰度的同时用最少的字符写上述语句 - 这怎么'不是真正的问题'?这不是一个代码高尔夫练习,虽然一些有趣的答案来自人们接近它作为高尔夫球 - 很高兴看到高尔夫球以建设性和发人深省的方式使用.

javascript variables coding-style toggle

462
推荐指数
25
解决办法
5万
查看次数

为什么Android教程中的大多数字段(类成员)都以`m`开头?

我知道骆驼案例规则,但我对这个规则感到困惑.它代表什么?我是一名PHP开发人员."我们"使用变量的第一个字母作为类型的指示,如"b"表示布尔值,"i"表示整数,依此类推.

是'Java'吗?它代表移动吗?混合使用吗?

android coding-style

425
推荐指数
7
解决办法
8万
查看次数

Vim 80列布局问题

我觉得我在Vim中做80列指示的方式不正确:set columns=80.有时我也是,set textwidth但我希望能够看到并预测线路溢出的set columns替代方案.

这有一些不幸的副作用 - 我不能set number因为害怕在具有不同行号顺序的文件之间进行拆分; 即<100行文件和> = 100行文件将需要两个不同的set columns值,因为附加数字显示使用了额外的列.我也开始新的(g)Vim会话而不是垂直分割窗口,这迫使我使用窗口管理器的剪贴板 - 每次打开或关闭窗格时都vsplit强制我这样做set columns,所以开始一个新的会话就不那么麻烦了.

当你想要set numbers,垂直分割等时,你如何处理80个字符的指示?

vim coding-style

412
推荐指数
11
解决办法
24万
查看次数

获取std :: vector的迭代器索引的最有效方法是什么?

我正在迭代一个向量,需要迭代器当前指向的索引.AFAIK这可以通过两种方式完成:

  • it - vec.begin()
  • std::distance(vec.begin(), it)

这些方法的优点和缺点是什么?

c++ iterator coding-style

409
推荐指数
6
解决办法
28万
查看次数

import语句应该始终位于模块的顶部吗?

PEP 08指出:

导入总是放在文件的顶部,就在任何模块注释和文档字符串之后,以及模块全局变量和常量之前.

但是,如果我导入的类/方法/功能仅在极少数情况下使用,那么在需要时进行导入肯定会更有效率吗?

不是这个:

class SomeClass(object):

    def not_often_called(self)
        from datetime import datetime
        self.datetime = datetime.now()
Run Code Online (Sandbox Code Playgroud)

比这更有效率?

from datetime import datetime

class SomeClass(object):

    def not_often_called(self)
        self.datetime = datetime.now()
Run Code Online (Sandbox Code Playgroud)

python optimization coding-style

373
推荐指数
14
解决办法
10万
查看次数

#pragma曾经vs包括守卫?

我正在研究一个已知只能在Windows上运行并在Visual Studio下编译的代码库(它与excel紧密集成,所以它不会去任何地方).我想知道我是否应该使用传统的包含警卫或#pragma once用于我们的代码.我认为让编译器处理#pragma once会产生更快的编译,并且在复制和粘贴时不易出错.它也稍微不那么难看;)

注意:为了获得更快的编译时间,我们可以使用Redundant Include Guards,但这会在包含的文件和包含文件之间增加紧密耦合.通常它没关系,因为防护应该基于文件名,并且只有在你需要改变包含名称时才会改变.

c++ coding-style

343
推荐指数
10
解决办法
19万
查看次数

好的Haskell源码来阅读和学习

什么是一些使用Haskell的开源程序,可以被认为是优质的现代Haskell?代码库越大越好.

我想从他们的源代码中学习.我觉得我已经超越了从小代码示例中学到的东西,这些代码通常是深奥的,小世界的.我想看看代码是如何构造的,当你有很多事情发生时,monad如何交互(日志记录,I/O,配置等).

open-source haskell coding-style

343
推荐指数
7
解决办法
4万
查看次数