小编Has*_*tor的帖子

枚举变量默认值?

问题很简单:

#include <iostream>

enum SomeEnum {  
    EValue1 = 1,  
    EValue2 = 4
};

int main() {
    SomeEnum enummy;
    std::cout << (int)enummy;
}
Run Code Online (Sandbox Code Playgroud)

什么是输出?

注意:这不是面试,这是我以前开发人员继承的代码.这里的流操作符只是例如,实际继承的代码没有它.

c++ variables enums default-value

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

在RxJava中concatMap和flatMap有什么区别

似乎这两个功能非常相似.它们具有相同的签名(接受rx.functions.Func1<? super T, ? extends Observable<? extends R>> func),并且它们的大理石图看起来完全相同.不能在这里粘贴图片,但这里是concatMap的一个,这里是flatMap的一个.在结果的描述中似乎存在一些细微的差别Observable,其中一个由concatMap包含由结合的Observable产生的flatMap项产生,而由包含由首先合并结果的Observable 产生的项产生,并且发出该合并的结果.

然而,这种微妙之处对我来说完全不清楚.任何人都可以更好地解释这种差异,并且理想地给出一些说明这种差异的例子.

java rx-java flatmap concatmap

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

如何将现有的node.js模块导入Intellij IDEA?

我有一个现有的Node.js代码库,从GitHub分叉.现在我想将它导入到Intellij IDEA 13(最终版本,它支持Node.js).当我只是尝试从现有代码的根文件夹导入项目时,IDEA不会添加"lib"文件夹,其中包含所有源代码.它应该很简单,但我无法弄清楚.任何提示?

intellij-idea node.js

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

C++:什么更快 - 在hashmap或switch语句中查找?

我有一个代码模式,可以将一个整数转换为另一个整数.像这样:

int t(int value) {
    switch (value) {
        case 1: return const_1;
        case 3: return const_2;
        case 4: return const_3;
        case 8: return const_4;
        default: return 0;
    }
}
Run Code Online (Sandbox Code Playgroud)

目前它有大约50个条目,可能稍后会有更多,但可能不超过一百或两个.所有值都是预定义的,当然我可以按其值排序案例标签.所以问题是,什么会更快 - 这种方法或将其放入哈希映射(我无法访问std :: map,所以我说的是我的SDK中可用的自定义哈希映射)并在该表中执行查找?也许这有点过早优化,但是......但我只是需要你的意见.

提前致谢.

编辑:我的案例值将在0到0xffff的范围内.并且关于哈希映射的更好的可读性.我不知道是否真的会有更好的可读性,因为我还需要值来填充它,所以常量映射的是板材还是需要在我的代码的某个地方.

编辑2:已经给出了许多有用的答案,非常感谢.我想在这里添加一些信息.我的哈希键是整数,我的整数哈希函数基本上只是一个带有积分溢出的乘法:

EXPORT_C __NAKED__ unsigned int DefaultHash::Integer(const int& /*aInt*/)
{
_asm mov edx, [esp+4]
_asm mov eax, 9E3779B9h
_asm mul dword ptr [edx]
_asm ret
}
Run Code Online (Sandbox Code Playgroud)

所以应该很快.

c++ performance hashmap switch-statement

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

Rx Observable定期发射值

我必须定期轮询一些RESTful端点以刷新我的Android应用程序的数据.我还必须根据连接暂停和恢复它(如果手机处于离线状态,则无需尝试).我目前的解决方案是有效的,但它使用标准的Java ScheduledExecutorService来执行周期性任务,但我想留在Rx范例中.

这是我当前的代码,为简洁起见,部分内容被跳过.

userProfileObservable = Observable.create(new Observable.OnSubscribe<UserProfile>() {
    @Override
    public void call(final Subscriber<? super UserProfile> subscriber) {
        final ScheduledExecutorService scheduledExecutorService = Executors.newSingleThreadScheduledExecutor();
        final Runnable runnable = new Runnable() {
            @Override
            public void run() {
                // making http request here
            }
        };
        final List<ScheduledFuture<?>> futures = new ArrayList<ScheduledFuture<?>>(1);
        networkStatusObservable.subscribe(new Action1<Boolean>() {
            @Override
            public void call(Boolean networkAvailable) {
                if (!networkAvailable) {
                    pause();
                } else {
                    pause();                        
                    futures.add(scheduledExecutorService.scheduleWithFixedDelay(runnable, 0, SECOND_IN_MILLIS * SECONDS_TO_EXPIRE, TimeUnit.MILLISECONDS));
                }
            }

            private void pause() {
                for (ScheduledFuture<?> future …
Run Code Online (Sandbox Code Playgroud)

android rx-java

21
推荐指数
3
解决办法
2万
查看次数

C++:继承字段的初始化

我有一个关于在派生类的构造函数中初始化继承成员的问题.示例代码:

class A
    {
public:
    int m_int;
    };

class B: public A
    {
public:
    B():m_int(0){}
    };
Run Code Online (Sandbox Code Playgroud)

这段代码给了我以下输出:

In constructor 'B::B()': Line 10: error: class 'B' does not have any field named 'm_int'

(见http://codepad.org/tn1weFFP)

我猜这是为什么会这样?m_int应该是on的成员B,并且A当m_intin的初始化B发生时,父类应该已经被初始化(因为父构造函数在继承类的成员初始化之前运行).我的推理错在哪里?这段代码到底发生了什么?

EDIT:我知道初始化这个成员的其他可能性(基础构造函数或派生构造函数中的赋值),但我想理解为什么它在我尝试的方式中是非法的?一些特定的C++语言功能还是这样的?如果可能的话,请指出C++标准的段落.

c++ initialization initialization-list

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

如何使用async-await模式初始化对象

我试图在我的服务类中遵循RAII模式,这意味着当构造一个对象时,它会被完全初始化.但是,我遇到了异步API的困难.有问题的类的结构如下所示

class ServiceProvider : IServiceProvider // Is only used through this interface
{
    public int ImportantValue { get; set; }
    public event EventHandler ImportantValueUpdated;

    public ServiceProvider(IDependency1 dep1, IDependency2 dep2)
    {
        // IDependency1 provide an input value to calculate ImportantValue
        // IDependency2 provide an async algorithm to calculate ImportantValue
    }
}
Run Code Online (Sandbox Code Playgroud)

我也打算在ImportantValuegetter中摆脱副作用,使其成为线程安全的.

现在,用户ServiceProvider将创建它的实例,订阅ImportantValue更改事件,并获得初始值ImportantValue.这里出现了问题,初始值.由于ImportantValue是异步计算的,因此无法在构造函数中完全初始化类.最初将此值设为null可能没问题,但是我需要在某个地方首次计算它.一个自然的地方可能是ImportantValue吸气剂,但我的目标是使其线程安全,没有副作用.

所以我基本上坚持这些矛盾.你能帮助我并提供一些替代方案吗?在构造函数中初始化值虽然不是很好,但是没有副作用和属性的线程安全是必需的.

提前致谢.

编辑:还有一件事要补充.我正在使用Ninject进行实例化,据我所知,它不支持异步方法来创建绑定.虽然在构造函数中启动一些基于任务的操作的方法将起作用,但我无法等待其结果.

即两个下一个方法(目前为止提供的答案)将无法编译,因为返回了Task,而不是我的对象:

Kernel.Bind<IServiceProvider>().ToMethod(async ctx => await ServiceProvider.CreateAsync())
Run Code Online (Sandbox Code Playgroud)

要么

Kernel.Bind<IServiceProvider>().ToMethod(async ctx => 
{
    var …
Run Code Online (Sandbox Code Playgroud)

c# design-patterns ninject raii async-await

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

捕获当前线程的执行程序

我正在使用Guava的ListenableFuture,关于它们的一个好处是将Executor传递给Futures.addCallback方法,即要求在给定的线程/执行器上执行回调.

在我的Android应用程序中,我希望能够基于ListenableFutureUI线程启动异步执行,并安排一个也在UI线程上执行的回调.因此,我想以某种方式将UI线程执行器提交给Futures.addCallback上面提到的方法.怎么实现呢?

或者,换句话说,我想拥有UI线程的执行程序.它是否已经在Android中可用,或者,如果我必须创建自己的,我该怎么做?

编辑:作为这个问题的扩展,是否有可能做同样的事情,但不只是与UI线程,但与任何特定的线程,在哪里调用异步方法?

我会很高兴知道如何达到同样的效果,而不诉诸Android相关的东西像Handler和Looper,只需用纯Java.

java android executorservice guava

11
推荐指数
3
解决办法
8580
查看次数

单声道存储库的SBT构建结构

我想将SBT用于围绕具有数十个项目的单个Git存储库构建的构建.我希望从构建中获得以下可能性:

  1. 一键构建/测试/发布构建中的所有项目.
  2. 为构建中的所有项目定义和应用常用设置.
  3. 在项目子目录中定义项目特定的设置,保持构建的根目录清洁.
  4. 项目应该能够相互依赖,但......
  5. 大多数项目在类路径意义上不会相互依赖.
  6. 一些项目将是SBT插件,应该包含在其他项目中(但不包括在所有项目中).

现在考虑到这些要求,构建的结构应该是什么?由于要求3,我不能只build.sbt在构建的根目录中使用单个,因为我不想将所有项目设置放在那里,因为它将是大量文本,并且每个更改都在一个项目将反映在顶层.

我也听说*.sbt根项目和子项目的文件使用都容易出错,一般不推荐(在SBT中的多项目构建下使用包为root项目生成工件,或者我如何使用sbt插件作为多项目构建中的依赖项?,子项目中的SBT:plugins.sbt会被忽略吗?等等.我只尝试*.sbt了不同级别的文件的简单多项目构建,它只是起作用.*.sbt考虑到上述要求,如果我要采用多文件方法,我需要记住哪些陷阱?

scala sbt

6
推荐指数
1
解决办法
920
查看次数

Perl:使用正则表达式将十六进制编码的字符串解析为数组

我对Perl开发很新,我想执行以下任务:

我的脚本接收十六进制编码的字符串作为命令行参数.然后我必须解码这个字符串并将其写入输出文件,就像C++数组一样,并根据给定的数据进行初始化.例如:

perl myscript.pl DEADBABEDEADBEEF 和输出的东西一样

const boost::array<char, 8> MyArray = { 0xDE, 0xAD, 0xBA, 0xBE, 0xDE, 0xAD, 0xBE, 0xEF };

使用Perl正则表达式执行此操作的正确方法是什么?当然,我可以用子串循环执行它,但我相信应该有更优雅的方式.

编辑:输入字符串具有固定长度.

regex perl hex

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