小编Dan*_*ham的帖子

如何获取Node.js目录中存在的所有文件的名称列表?

我正在尝试使用Node.js获取目录中存在的所有文件的名称列表.我想要输出是一个文件名数组.我怎样才能做到这一点?

javascript directory-listing node.js

882
推荐指数
22
解决办法
81万
查看次数

强迫孩子在CSS中服从父母的弯曲边框

我在另一个div里面有一个div. #outer#inner. #outer有弯曲的边框和白色背景. #inner没有弯曲的边框和绿色背景. #inner延伸到弯曲的边界之外#outer.反正有没有阻止这个?

#outer { 
        display: block; float: right; margin: 0; width: 200px;
        background-color: white; overflow: hidden;
        -moz-border-radius: 10px; 
        -khtml-border-radius: 10px; 
        -webkit-border-radius: 10px; 
        border-radius: 10px; 
    }
    #inner { background-color: #209400; height: 10px; border-top: none; }
Run Code Online (Sandbox Code Playgroud)
 <div id="outer">
        <div id="inner"></div>
        <!-- other stuff needs a white background -->
        <!-- bottom corners needs a white background -->
    </div>


    
Run Code Online (Sandbox Code Playgroud)

无论我如何尝试它仍然重叠.我怎样才能#inner服从并填补#outer边界?

编辑

以下黑客为此目的服务.但问题是(可能是CSS3和webbrowser编写者):为什么子元素不服从父母的弯曲边界,反正强迫他们去?

为了满足我现在的需求,你可以将这些曲线分配给各个边框.所以为了我的目的,我只是给内部元素的前两个分配了一条曲线.

#inner {
    border-top-right-radius: 10px; -moz-border-radius-topright: …
Run Code Online (Sandbox Code Playgroud)

css css3

115
推荐指数
2
解决办法
5万
查看次数

按位运算符对Java中布尔值的影响

按位运算符应该传输变量并逐位操作它们.在整数,longs,chars的情况下这是有道理的.这些变量可以包含由其大小强制执行的所有值.

但是,在布尔值的情况下,布尔值只能包含两个值.1 =真或0 =假.但是没有定义布尔值的大小.它可以大到一个字节或一点点.

那么在布尔值上使用按位运算符会产生什么影响呢?JVM本质上是将它转换为普通的逻辑运算符并继续前进吗?为了操作的目的,它是否将布尔值视为单个位实体?或者结果未定义以及布尔值的大小?

java boolean bitwise-operators

109
推荐指数
3
解决办法
5万
查看次数

多少抽象太多了?

在面向对象的程序中:抽象多少太多了?多少钱是对的?

我一直都是一个坚定的人.我理解高级封装和抽象背后的概念,但总觉得增加太多只会混淆程序.

我总是试图拍摄一些没有空类或层的抽象.如果有疑问,我会尝试在现有图层中添加一些新图层,而不是在层次结构中添加新图层.

然而,最近我遇到了更多高度抽象的系统.系统中可能需要在层次结构中稍后表示的所有内容都可以预先获得.这导致了很多空层,起初看起来像是糟糕的设计.然而,第二个想法我已经意识到,留下那些空白的层将为你提供更多的地方,以便将来不需要太多的重构.它使你能够更好地在旧版本之上添加新功能,而无需做太多调整旧版本的工作.

这样做的两个风险似乎是你可以得到你需要错误的图层.在这种情况下,人们最终还是需要进行大量的重构来扩展代码,并且仍然会有大量未使用的层.但是,根据您花费多少时间进行初始抽象,将其搞砸的可能性,以及如果您做得对,可以节省的时间 - 可能仍然值得尝试.

我能想到的另一个风险是过度做的风险,从不需要所有额外的层.但那真的很糟糕吗?额外的类层真的如此昂贵,如果从未使用它们会有很大的损失吗?这里最大的费用和损失将是前面提到的层丢失的时间.但是,当人们可以使用抽象代码而不是更低级别的代码时,大部分时间仍然可以保存.

那么什么时候太多了?空白层和额外的"可能需要"抽象在什么时候变得有点过分?太少了?甜蜜点在哪里?

您在职业生涯中是否有任何可靠的经验法则可以帮助您判断所需的抽象量?

language-agnostic oop abstraction

67
推荐指数
5
解决办法
1万
查看次数

如何构建具有多个相互依赖的子目录的C++项目?

我有一个C++项目,我将目录用作更多的组织元素 - 可以使用Java中的包或PHP中的目录.目录不是自给自足的元素,而是组织整个项目的一种方式,使我不被源头所淹没.如何构建我的CMakeLists.txt文件来处理这个?使目录库似乎不适合这里,因为它们都是相互依赖的,并不打算以这种方式使用.

作为一个相关的问题,我在CMake中看到的多个子目录的大多数例子(并没有很多这些例子)忽略或掩盖了设置问题include_directories,这是我一直遇到的问题.除了梳理我的源文件以确定哪个文件取决于哪个文件以及在哪个目录中,还是将所有目录设置/src/为潜在的包含目录并让CMake解决哪些实际依赖?

这是一个示例结构:

--src
  --top1
    --mid1
      --bot1
        --src1.cpp
        --hdr1.h
      --bot2
        --src2.cpp
        --hdr2.h
    --mid2
      --bot3
        --src3.cpp
        --src4.cpp
        --hdr3.h
  --top2
    --mid3
      --src5.cpp
      --hdr4.h
Run Code Online (Sandbox Code Playgroud)

等等等等.如何构建我的CMakeLists.txt文件来处理这种结构?

c++ cmake

65
推荐指数
2
解决办法
5万
查看次数

在C++中声明和初始化Conditional或Control语句中的变量

在Stroustrup的The C++ Programming Language:Special Edition(3rd Ed)中,Stroustrup写道,控制语句条件中的变量声明和初始化不仅是允许的,而且是鼓励的.他写道,他鼓励它,因为它将变量的范围缩小到只有它们所需的范围.所以像这样......

if ((int i = read(socket)) < 0) {
    // handle error
}
else if (i > 0) {
    // handle input
}
else {
    return true;
}
Run Code Online (Sandbox Code Playgroud)

...是很好的编程风格和实践.该变量i仅存if在于需要它的语句块中,然后超出范围.

但是,g ++(版本4.3.3 Ubuntu特定编译)似乎不支持编程语言的这个特性,这对我来说是令人惊讶的.也许我只是用一个标志来调用g ++来关闭它(我称之为的标志是-g-Wall).在使用这些标志进行编译时,我的g ++版本返回以下编译错误:

socket.cpp:130: error: expected primary-expression before ‘int’
socket.cpp:130: error: expected `)' before ‘int’
Run Code Online (Sandbox Code Playgroud)

在进一步的研究中,我发现我似乎并不是唯一一个不支持此编译器的编译器.并且在这个问题中似乎存在一些混淆,因为确切地说语言在语言中是什么标准,以及编译器使用它编译什么.

所以问题是,什么编译器支持这个功能以及需要设置哪些标志才能编译?这是某个标准而不是其他标准的问题吗?

另外,出于好奇,人们普遍认同Stroustrup这是好风格吗?或者这是一种语言的创造者在他脑海中获得一个想法的情况,这个想法不一定得到语言社区的支持?

c++ compiler-construction conditional declaration

26
推荐指数
4
解决办法
8537
查看次数

Java Vector或ArrayList for Primitives

有Java API中的可膨胀的数组类相当于VectorArrayList可以与图元可以使用类(INT,炭,双,等)?

我需要整数快速,可扩展的阵列,它似乎浪费有包裹他们在Integer班级,以便与使用它们VectorArrayList.我的google-fu让我失望了.

java primitive vector arraylist primitive-types

22
推荐指数
4
解决办法
2万
查看次数

在Java中抛出一个链接的例外列表

我有一个函数循环,同时做一些可能抛出异常的东西.看起来像这样:

public void myFunction() throws MyException {
    while(stuff) {
        try {
            DoSomething() // throws an exception
        }
        catch (Exception ex) {
            throw new MyException(some, stuff, of, mine, ex);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

导致异常的错误是可恢复的.它可能类似于单个更新语句中的SQL错误,其中while循环执行一系列更新语句.或者单个数据中的解析错误,其中循环处理多个数据.我需要在链中进一步传递异常,以便程序的GUI部分可以处理它,处理它并将错误传递给用户.但我不想在这个特定的函数中杀死循环.它正在做的其他事情可能并非无效.导致异常的错误可能对函数不致命.

所以我的问题是: 构建自定义异常的链接列表(其中每个异常是一个节点,抛出的异常是列表的头部)然后抛出列表的头部(如果有的话)是一种可接受的做法循环完成?

有没有人见过这样的事?有人能想到这样做的任何潜在问题吗?任何人都可以想到其他更好的方法来处理根问题:需要在退出函数之前传递多个不相关的异常,直到它完成为止?

这是一个如何非常简单地实现链接和throw的示例:

public void myFunction() throws MyException {
    MyException head = null;
    while(stuff) {
        try {
            DoSomething() // throws an exception
        }
        catch (Exception ex) {
            MyException tmp = new MyException(some, stuff, of, mine, ex);
            tmp.next(head);
            head = tmp;
        }
    }
    if(head != null)
       throw head; …
Run Code Online (Sandbox Code Playgroud)

java exception-handling

17
推荐指数
1
解决办法
1万
查看次数

通用接口将self作为参数.递归通用?

免责声明:我对Java Generics没有丰富的经验,但是我和我的同事们花了一个小时试图破解一个结构如下的界面:

interface HasAttributes<A extends HasAttributes<A, B>, 
                        B extends HasAttributesType<B>> extends Identification<B> {
Run Code Online (Sandbox Code Playgroud)

当接口泛型采用本身的类型参数时,它到底意味着什么?这是做什么的?

java generics

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

是否可以隐藏或降低对Java中的继承方法的访问?

我有一个类结构,我希望基类中的某些方法可以从直接从基类派生的类中访问,但不能从派生类派生的类中访问.根据Java语言规范,可以覆盖继承方法的访问规范,使其更公开,但不是更私密.例如,这是我需要做的事情的要点,但是非法的:

// Defines myMethod
public class Base {
    protected void myMethod() {}
}

// Uses myMethod and then hides it.
public class DerivedOne extends Base {
    @Override
    private void myMethod();
}

// can't access myMethod.
public class DerivedTwo extends DerivedOne {

}
Run Code Online (Sandbox Code Playgroud)

有没有办法实现这个目标?

编辑解释我为什么要这样做:

在这种情况下,类结构是数据处理和导入结构.它读入并解析充满表格数据的文本文件,然后将它们存储在数据库中.

基类是管理数据库处理部分的基表类.其中包含了相当多的功能,这些功能对于所有表类型都是通用的 - 因为一旦它们在数据库中,它们就变得统一.

中间类特定于要解析的文件中的表类型,并具有表解析和导入逻辑.它需要访问一些基类的数据库访问函数.

顶级类特定于表,并且只是以父类可以理解的方式初始化表的布局.此外,基类的用户不需要查看或访问中产阶级所执行的数据库特定功能.本质上,我想将这些函数仅显示在基类之上的一个级别而不是其他人.

我问,因为虽然我发布的代码是非法的,但可能还有其他方法可以实现同样的目的.我问是否有.

也许隐藏是错误的方式来表达这一点 - 我真正需要做的是将一些应该是基类私有的功能暴露给层次结构中一级的类.隐藏会实现这一点 - 但我可以看到隐藏是一个问题.还有另一种方法吗?

java inheritance overriding access-specifier

14
推荐指数
4
解决办法
2万
查看次数