Perl代码片段:
my $export = $doc;
$export =~ s:\.odt:\.pdf:;
Run Code Online (Sandbox Code Playgroud)
怎么会写得更干净?不仅仅是其他900种编写方式TMTOWTDI.
var ProdWidth = Math.abs(parseInt(Product.css('width')))
+ Math.abs(parseInt(Product.css('marginLeft')))
+ Math.abs(parseInt(Product.css('marginRight')))
+ Math.abs(parseInt(Product.css('paddingLeft')))
+ Math.abs(parseInt(Product.css('paddingRight')));
Run Code Online (Sandbox Code Playgroud)
这适用于提出元素的总宽度,包括填充和边距,但它的愚蠢.我应该怎么做?
书籍通常会说,如果课程太大而无法管理,请重新考虑实施,因为设计需要更正,因为课程尚未正确定义.
但是在类确实很大的情况下,例如当一个类被扩展以实现控件的功能时(例如Canvas),并且有许多不同的东西,如命中测试,绘图,管理绘制的项目等.在这种情况下使用部分类来分离更大容器(例如自定义控件)的"不同"事物是一个很好的解决方案吗?
其次,作为一个更普遍和更广泛的解决方案,在转向部分类之前应该考虑什么?
我正在通过课程中的函数式编程课程进行scala.我注意到自动样式检查器告诉我使用'return'是一个坏习惯.这是为什么?对我而言,似乎使用return会使代码更具可读性,因为任何其他程序员都可以立即看到它以及函数返回的内容.
例如,这是为什么;
def sum(xs: List[Int]): Int = {
if( xs.length == 0){
return 0
}else{
return xs.head + sum(xs.tail)
}
}
Run Code Online (Sandbox Code Playgroud)
被认为比这更糟糕;
def sum(xs: List[Int]): Int = {
if( xs.length == 0){
0
}else{
xs.head + sum(xs.tail)
}
}
Run Code Online (Sandbox Code Playgroud)
我习惯了javascript,所以这可能是我对此感到不安的原因.不过,任何人都可以明白为什么添加return语句会让我的代码变得更糟吗?如果是这样,为什么语言中有返回声明?
这是我原来的CSS应用不同的颜色背景:
.one-colour {
background-color:#153a63;
}
.two-colour {
background-color:#f16c24;
}
.three-colour {
background-color:#337db9;
}
Run Code Online (Sandbox Code Playgroud)
我知道你可以做多个CSS类,比如 .one.two.three {...}
但是我的CSS是否尽可能缩小了?我并不只是将代码放在一行上以使其"更短".
我想知道是否有办法避免在下面的代码片段的第二行中进行转换.
另外,有没有办法通过在addIfMatters方法中使用convertToInteger,convertToBoolean等泛型来进一步简化代码?
public void process() {
// How can I avoid the cast below?
Boolean value = (Boolean) addIfMatters(target, source, true);
if (value){
// I have some stuff to do here
}
}
private Object addIfMatters(Map<String, Object> target, Source source, Object defaultValue) {
Object value = null;
if (needed(source)) {
if (defaultValue instanceof Boolean) {
value = convertToBoolean(source.getValue, defaultValue); // returns 'defaultValue' if value in source is null
} else if (defaultValue instanceof Integer) {
value = convertToInteger(source.getValue, defaultValue);
} …Run Code Online (Sandbox Code Playgroud) flatMap 签名:
/* applies a transformation of the monad "content" by composing
* this monad with an operation resulting in another monad instance
* of the same type
*/
def flatMap(f: A => M[B]): M[B]
Run Code Online (Sandbox Code Playgroud)
无论如何要通过它的签名(输入到输出)(除了名称flat)来理解它的扁平化结构?或者我必须阅读其实现以了解这一点?是不是很好的编码实践意味着我可以通过函数的签名(甚至没有函数名输入输出)来理解它的作用是什么?如果是这样,flatMap这个基本的编程实践如何?还是违反了它?
我有一个像这样的例子:
def demo(a: Int, b: Int, c:Int): Int = {
if (a == 1)
return 10
if (b == 2)
return 20
if (c == 3)
return 30
40
}
Run Code Online (Sandbox Code Playgroud)
代码运行良好,但我知道在Scala中我们试图避免返回.所以我想问一下,有什么不同的方法可以避免回报?谢谢
编辑 这是我得到的真实案例,我想避免回归.
post("/") {
if (product_id <= 0)
return BadRequest(Map("ERROR" -> "PRODUCT_ID IS WRONG"))
if (file_id.isEmpty())
return BadRequest(Map("ERROR" -> "FILE ID NOT FOUND"))
if (data_type.isEmpty())
return BadRequest(Map("ERROR" -> "FILE TYPE NOT FOUND"))
if (data_type.get != "cvs")
return BadRequest(Map("ERROR" -> "FILE TYPE IS WRONG"))
OK(Map("SUCCESS" -> "THANK YOU")) …Run Code Online (Sandbox Code Playgroud) 从 PHP 7.0 开始,可以在函数中设置返回类型。
但是您不能强制它,因为void该语言不支持返回类型,并且静态分析很难知道函数是否会返回与 void 不同的内容。
在 PHP 7.1 中void允许返回类型。这意味着现在所有函数都可以建立返回类型。
有没有办法以这种方式配置 PHP,以便在函数没有建立返回类型时发出“语法错误”?
例如这个:
private function foo()
{
$this->dummy();
}
Run Code Online (Sandbox Code Playgroud)
会抛出语法错误,而:
private function foo() : void
{
$this->dummy();
}
Run Code Online (Sandbox Code Playgroud)
不会。
我正在为少数人制作生日跟踪器,并且想知道如何将所有 if 语句合并为一个,因为日期和名称是每个 if 语句中唯一不同的内容,其余格式相同。
date=`date +%b-%d`
echo $date
if [ $date == "Sep-09" ]; then
echo "Happy Birthday abc!"
fi
if [ $date == "Oct-11" ]; then
echo "Happy Birthday xyz!"
fi
.
.
.
Run Code Online (Sandbox Code Playgroud)
我想我可以使用位置参数($1 表示日期,$2 表示名称..),但不知道如何将它用于多个日期和名称。或者如果有更好的方法,也很高兴知道。
code-cleanup ×10
coding-style ×3
scala ×3
bash ×1
c# ×1
css ×1
generics ×1
if-statement ×1
java ×1
javascript ×1
jquery ×1
perl ×1
php ×1
refactoring ×1
regex ×1
repeat ×1
return ×1
return-type ×1
return-value ×1
shell ×1
syntax ×1
syntax-error ×1