小编rye*_*guy的帖子

这是一种类型不匹配?

  val eventListeners = new HashMap[Class[Event], ArrayBuffer[Event => Unit]]

  def addEventListener[A <: Event](f: A => Unit)(implicit mf: ClassManifest[A]): A => Unit = {
    eventListeners.getOrElseUpdate(mf.erasure.asInstanceOf[Class[Event]], ArrayBuffer[Event => Unit]()) += f
    f
  }
Run Code Online (Sandbox Code Playgroud)

投掷:

error: type mismatch;
 found   : (A) => Unit
 required: (this.Event) => Unit
    eventListeners.getOrElseUpdate(mf.erasure.asInstanceOf[Class[Event]], ArrayBuffer[Event => Unit]()) += f
Run Code Online (Sandbox Code Playgroud)

为什么说它找到了(A) => Unit?值f是一个函数(Event) => Unit.不A只是一个类型参数,而不是签名?

示例电话: addEventListener { e:FooEvent => .... }

types scala

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

Web应用程序的瓶颈?

这个问题涉及Ruby on Rails和PHP.在为Web应用程序寻找VPS主机时(还没有确定要编写它的两种语言中的哪一种),我应该考虑更多什么?内存还是CPU?我知道你需要两者的公平平衡,但我会先遇到哪一面?

我确定这取决于应用程序正在进行的工作类型,在我的情况下它是正常的CRUD.我的猜测是记忆,但我想确定一下.

php ruby-on-rails

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

Ruby on Rails中重要的算术工作?

我有一个相当密集的算法,必须在我的RoR应用程序中经常运行(每秒多次).考虑到Ruby对这种东西的速度有多,我觉得在Ruby中做这项工作并不好.

你可能会认为我应该将它添加到某种工作队列并让C++应用程序解决它,但我需要立即返回结果.有没有办法用C++插件扩展RoR?如果我喜欢通过套接字连接到C++应用程序怎么办?或者那只是疯了?

ruby ruby-on-rails

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

一个大字节缓冲区还是几个小缓冲区?

我正在学习C#异步套接字编程,并且我已经了解到在某种池中重用字节缓冲区是个好主意,然后在从套接字接收数据时根据需要检查一个.

但是,我已经看到了两种不同的字节数组池方法:一种是使用简单的队列系统,只是根据需要在队列中添加/删除它们.如果请求了一个并且队列中没有剩余,则会创建一个新的字节数组.

我见过的另一种方法是为整个程序使用一个大字节数组.队列的概念仍然适用,但它是一个整数队列,它确定要使用的字节数组的片(偏移量).如果请求了一个并且队列中没有剩余,则必须调整阵列的大小.

对于高度可扩展的服务器,哪一个是更好的解决方案?我的直觉是,使用多个字节数组会更便宜,因为我想要根据需要调整数组大小(即使我们在大块中分配它)也会非常昂贵,特别是当它变大时.使用多个阵列似乎也更直观 - 使用一个我没想到的大型阵列有一些优势吗?

c# sockets networking buffer

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

mnesia delete_object异常?

我不明白这里有什么问题,但我可能会误解语法.我正在尝试从我的"用户"mnesia表中删除一个名为"ryan"的"用户"记录(其中有多个).这是我做的:

Delete=#user{first_name = "ryan", _ = '_'},
mnesia:dirty_delete_object(Delete)
Run Code Online (Sandbox Code Playgroud)

这是我的记录定义:

-record(user, {id,
               username,
               password,
               email,
               first_name,
               last_name,
               last_login, % Date/time user last logged in
               reg_date}). % Date/time user registered the account
Run Code Online (Sandbox Code Playgroud)

这是我得到的例外:

** exception exit: {aborted,
                       {bad_type,user,
                           {user,'_','_','_','_',"ryan",'_','_','_'}}}
     in function  mnesia:abort/1
     in call from users:register/1
Run Code Online (Sandbox Code Playgroud)

这似乎是一场完美的比赛.什么可能导致这个问题?

erlang mnesia

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

正则表达式匹配Javascript嵌套问题

首先,原谅我的hacky代码,我只是想尝试一下,我第一次学习javascript.基本上,给定字符串"abc!random {3}"将意味着返回以"abc"开头并以0-3开始的随机数结束的字符串.

这是我有的:

var pattern=/!random{([^{]*?)}/gi;
var text="abc!random{3}def!random{4}ghi!random{!random{3}}";

while (pattern.test(text))
{
    text=text.replace(pattern, Math.random() * parseInt("$1")); 
}
Run Code Online (Sandbox Code Playgroud)

问题是parseInt函数.似乎1美元没有传递给它......它的价值被清除或者其他东西.如果我做:

text=text.replace(pattern, "$1");   
Run Code Online (Sandbox Code Playgroud)

它正确地返回{}之间的内容,因此正则表达式正在工作,匹配存储在$ 1中.但是,只要我将它用作$ 1的参数,它的值似乎就被清除了.是什么赋予了?

javascript

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

PHP排序

我正在尝试对每个条目具有多个值的关联数组进行排序.

例如

[0] => stdClass Object ( [type] => node [sid] => 158 [score] => 0.059600525242489 )
[1] => stdClass Object ( [type] => node [sid] => 247 [score] => 0.059600525242489 )
Run Code Online (Sandbox Code Playgroud)

我希望数组按'得分'排序(最高得分是第一个索引)

我该怎么做?

php sorting

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

批判我的异常处理策略

在过去7年的大部分时间里,我一直在进行面向对象编程,在此期间使用Java打开和关闭.有些事情我确信我有很好的把握,比如最有用的设计模式.实际上,下面的代码允许我在一天的时间内创建一个小系统,它将处理我们现在准备实现的一个特定实例,同时具有足够的灵活性来处理我已经被告知的未来需求:

public void importAndArchive(File detectedFile) throws FileNotFoundException, IOException {
        File workingCopy = returnWorkingCopy(detectedFile);
        List<String[]> csvData = csvData(workingCopy);
        setHeaderFields(csvData.get(0));

        importData(csvData); //subclass will implement this abstract method

        archiveWorkingCopy(workingCopy);
    }
Run Code Online (Sandbox Code Playgroud)

我没有表现出上面的夸耀我对模板方法的掌握,而是作为一个起点来讨论我的能力中的差距,这是我的OO设计能力的明显.这种差距是异常处理的系统方法.事实上你可以在那个方法签名中看到我暂时重新抛出一些异常,但实际上我已经在应用程序的另一个角落里根除了同样的东西.

在我走得更远之前,由于这是我第一次特别系统化的尝试,我想对我到目前为止所做的事情进行一些验证.我们的应用程序循环遍历一堆文件,"处理"它们并"归档"它们.非常标准的票价.我为了尽快推出原型而做出的一个决定如下.应用程序根据(ResourceBundled)属性文件中的数据进行初始化.ResourceBundle API中的各种方法抛出未经检查的异常,但我暂时并没有真正处理它们,理由是它们会阻止应用程序启动,并且堆栈跟踪暂时就足够了.

但是我选择了一个用于CSV处理的库,它会抛出已检查的异常.然后,NetBeans很容易将这些异常扩散开始;)以下是我重新编写的一个实际处理这些异常的方法:

private String detectImportHandler(File detectedFile) throws Exception {
    String[] firstLine = null;

    try {
        /*
         * CSVReader throws checked exceptions
         */
        CSVReader csvReader = new CSVReader(new FileReader(detectedFile));
        firstLine = csvReader.readNext();
        csvReader.close();
    }
    catch(Exception x) {
        throw new Exception("CSVReader unable to process file: " + x.getMessage());
    }

    try {
        return firstLine[1]; …
Run Code Online (Sandbox Code Playgroud)

java exception-handling

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

"渲染@collection"有什么作用?

我正在尝试通过查看示例应用程序来更好地学习Rails,并且在查看railscasts.com源代码的这一行时,我注意到它是这样做的:

<div class="episodes">
    <%= render @episodes %>
  </div>
Run Code Online (Sandbox Code Playgroud)

到底发生了什么?为什么渲染函数没有记录?或者是吗?

ruby-on-rails partial-views

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

部分应用程序如何在这里工作?

> map (++ "!") ["a", "b", "c"]
["a!","b!","c!"]
> (++) "!" "a"
"!a"
Run Code Online (Sandbox Code Playgroud)

这两行对我来说没有意义.使用++map,似乎第一个参数被附加到第二个参数,但在第二个列表中,它是另一种方式.Haskell如何推理map函数中的行为?

syntax haskell

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