小编cHa*_*Hao的帖子

Ruby:Range是空的,但用它切片会产生元素

我正在学习Ruby,并且刚刚学习了一些关于数组和范围的东西.我碰到了一些关于切片的东西,虽然乍看起来很有意义但是当我深入研究它时会让我感到困惑.

IRB说这(2..-1).to_a是一个空数组,意味着范围内没有值,对吧?
但如果我使用相同的范围[:a, :b, :c, :d, :e][2..-1],我会回来[:c, :d, :e]而不是一个空数组.

现在,我知道-1表示数组的最后一个元素,所以选择的内容是有道理的.但是,如果范围本身是空的,它如何选择任何东西?

ruby arrays range slice

7
推荐指数
1
解决办法
1144
查看次数

其他可编写脚本的编辑器?

我只是想知道你知道哪些编辑器是"可编写脚本的".例如,使用Emacs,可以说你可以在编辑器中做任何事情:写作,阅读,编程.全部使用"脚本语言"Emacs-Lisp.您知道的其他编辑器是否可编写脚本?

你是否知道让我们说Perl,Ruby或任何其他类似C语言的脚本编辑器?

comparison editor

7
推荐指数
1
解决办法
1471
查看次数

枚举与类加载器

有时你甚至可能不知道你插入代码的环境有多个类加载器.在这种情况下,我仍然可以期望"=="操作对枚举值起作用吗?

java enums

7
推荐指数
3
解决办法
2860
查看次数

在C++ 03中返回类似`std :: auto_ptr`的集合的最佳方法是什么?

std::auto_ptr不允许存储在STL容器中,例如std::vector.但是,偶尔会出现需要返回多态对象集合的情况,因此我无法返回对象向量(由于切片问题).我可以使用std::tr1::shared_ptr并坚持使用vector,但是我必须付出高昂的代价来维护单独的引用计数,并且拥有实际内存(容器)的对象不再在逻辑上"拥有"对象,因为它们可以被复制出来它不考虑所有权.

C++ 0x以这种形式为这个问题提供了一个完美的解决方案std::vector<std::unique_ptr<t>>,但是我无法访问C++ 0x.

其他一些说明:

  • 我无法访问C++ 0x,但我确实有TR1可用.
  • 我想避免使用Boost(尽管如果没有其他选项可以使用)
  • 我知道boost::ptr_container容器(即boost::ptr_vector),但我想避免这种情况,因为它打破了调试器(内部存储在void *s中,这意味着很难在调试器中查看实际存储在容器内的对象)

c++ collections memory-management auto-ptr c++03

7
推荐指数
1
解决办法
171
查看次数

将多个域/ URL重定向到一个规范域

我在Apache的重写指南中看到了如何将非www请求重定向到www请求的技巧:

RewriteCond %{HTTP_HOST}   !^www\.example\.com [NC]
RewriteCond %{HTTP_HOST}   !^$
RewriteRule ^/(.*)         http://www.example.com/$1 [L,R]
Run Code Online (Sandbox Code Playgroud)

其中将example.com的所有请求重定向到www.example.com.

但是我如何添加我想要来自example1.com,www.example1.com,example2.com,www.example2.com等的请求重定向到www.example.com?

编辑:

这是解决方案:

RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\.example\.com [NC]
RewriteCond %{HTTP_HOST} !^$
RewriteRule ^/?(.*) http://www.example.com/$1 [L,R,NE] 
Run Code Online (Sandbox Code Playgroud)

略有不同的RewriteRule并添加了'RewriteEngine on'

apache mod-rewrite redirect

7
推荐指数
1
解决办法
6385
查看次数

Java UncaughtExceptionHandler使用JNI没有任何异常

我有一个运行一系列任务的Java库.我使用以下方法注册了默认的未捕获异常处理程序

Thread.setDefaultUncaughtExceptionHandler(new JavaUncaughtExceptionHandler());

UncaughtExceptionHandler实现UncaughtExceptionHandler并仅记录错误信息STDERR.

我的Java库是通过JNI从C++代码调用的,JNI正在调用它,ExceptionCheck()并在C++中将错误记录为FATAL.

问题是:

在运行时,当RuntimeException我的Java代码中发生(或任何其他未捕获的异常)时,错误是在C++中捕获的,而不是我JavaUncaughtExceptionHandler注册为线程默认的未捕获异常处理程序.

  1. 这是例外行为吗?
  2. 什么时候会DefaultUncaughtExceptionHandler真正得到了叫什么?我知道在线程关闭之前,但具体在JNI情况下.是在返回C++之前还是在C++代码完成之后调用的.我认为这与JNI中的线程管理有关,请分享任何相关信息.
  3. 无论如何,我可以捕获我的Java代码中的所有异常(除了放置try/ catch块之外的其他替代方法)

非常感谢.

c++ java java-native-interface multithreading uncaughtexceptionhandler

7
推荐指数
1
解决办法
309
查看次数

Java网络:即兴的Socket/InputStream

我正在Java的套接字上实现一个面向事件的层,我想知道是否有办法确定是否有待读取的数据.

我的常规方法是从套接字读入缓冲区,并在缓冲区填充给定量的字节时调用提供的回调(如果每次到达时都需要触发回调,则可以为0),但是我怀疑Java已经在为我做缓冲了.

available()InputStream 的方法对此可靠吗?我应该只read()在插座上做自己的缓冲吗?或者还有另一种方式吗?

java sockets networking events

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

为熟悉ASP.NET Web表单开发的人建议MVC3的周末学习轨道

我有一个"绿色领域"项目,我将在星期一开始,它是一个内部网业务应用程序,想要做所有典型的工作,如工作流,警报.该模型使用EF完成,拥有50人公司预期拥有的所有核心实体以及业务特定会计程序模型 - 每个实体对应于员工命名法中的名词.

在过去的几个月里,我花了大量的业余时间学习sharepoint 2010,它肯定拥有这个项目想成为的一切设施(想想热情的企业主,他最近醒来了excel床单以外的生活可能性).我可能没有机会足够快地了解共享点曲线,这意味着从头开始编写它.

我需要处理的主要事项是: - 网格样式数据表单 - 基于活动目录的身份验证 - 电子邮件集成警报和事件驱动工作流程 - 类似于默认sharepoint 2010主题的专业外观

我知道如何使用网络表单.通过任何方式都不会轻而易举 - 提供商,.ASCX控件,验证器,主页,主题,皮肤,与项目特定的类库捆绑在一起,以支持跨领域问题.我脑子里有这个架构,它在其他项目上对我有用 - 我可以自己预测成功和时间表,这使我的压力水平可以控制.

也就是说,如果我至少没有尝试使用MVC,那么我会从"博客 - 球体"中得到明显的印象,我自己也会受到伤害.

我开始研究并找到了ASP.NET MVC 3文档资源,而且,我只是不知道从哪里开始.

我本周末决定是否可以这样做,因为星期一我必须参加比赛计划.

如果,根据我的描述,有人可以推荐一个教程和/或一个干净的开源示例,我会非常感激.

asp.net asp.net-mvc asp.net-mvc-3

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

是i =(i + 1)&3比i =(i + 1)%4快

我正在优化c ++代码.在一个关键步骤,我想实现以下功能y=f(x):

f(0)=1

f(1)=2

f(2)=3

f(3)=0
Run Code Online (Sandbox Code Playgroud)

哪一个更快?使用查找表或 i=(i+1)&3i=(i+1)%4?或者更好的建议?

c++ micro-optimization

6
推荐指数
3
解决办法
1520
查看次数

通过return语句java调用私有方法

所以我是java的新手,我正试图绕过这个.到目前为止,我正在编写一个调用私有方法的公共方法,这两个方法都写在同一个类中.在测试公共方法时,我能够针对对象employeeOne调用public方法,该对象的参数由用户提供.我不确定这里有私有方法调用,但是因为看起来我在类(我认为)上调用它而不是具有已定义属性的对象.

所以这是我在一个名为Employee的类中编写的私有方法:

private static double computeGrossPay()
{
    if (hoursWorked <= 40)
    {
        grossPay = (hoursWorked * payRate);
    }
    else if (hoursWorked >= 40)
    {
        grossPay = ((40 * payRate) + ((1.5 * payRate) * (hoursWorked - 40)));
    }
    return grossPay;
}
Run Code Online (Sandbox Code Playgroud)

我试图想办法在另一个类中调用这个方法,显然因为它是一个私有方法,所以我不能在它编写的类之外的任何地方调用它.所以我写了一个调用的方法来调用私人方法

public double grossPayDisplay()
{
    return Employee.computeGrossPay();
}
Run Code Online (Sandbox Code Playgroud)

这是我的问题发挥作用:到目前为止,此代码的工作,但我不是完全清楚为什么它的工作原理.

这是我测试它的方式:

System.out.println(employeeOne.grossPayDisplay());
Run Code Online (Sandbox Code Playgroud)

employeeOne是从Employee类创建的对象,其参数由用户提供,我的问题是:

编译器如何从Employee.computeGrossPay()中的Employee转到employeeOne?

或者重申如何做

return Employee.computeGrossPay() 
Run Code Online (Sandbox Code Playgroud)

实际上将属性传递给computeGrossPay()?

java

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