问题列表 - 第41109页

比较过程的内容,而不是结果

使用 Ruby 1.9.2

问题
比较两个过程的内容,而不是结果。我知道由于停止问题而无法测试结果,但这没关系;反正我也不想测试结果。

例如

proc {@x == "x"} == proc {@x == "x"}  => false # doh!
Run Code Online (Sandbox Code Playgroud)

这会返回 false,因为过程中的对象不相同。

我笨重的解决方案
我有一个解决方案,有点像我想要的那样,但它并没有真正测试过程是否“等于”我放入其中的内容。在我的具体情况下,我的过程的格式将始终是对实例变量的布尔测试,如下所示:

{@x == "x" && @y != "y" || @z == String} 
Run Code Online (Sandbox Code Playgroud)

我编写了一个动态构建类并创建设置为指定值的实例变量的方法:

def create_proc_tester(property_value_hash)
  new_class = Class.new.new

  new_class.class.class_eval do
     define_method(:xql?) { |&block| instance_eval &block }
  end

  property_value_hash.each do |key, value| 
    new_class.instance_variable_set("@#{key}", value)
  end

  new_class
end
Run Code Online (Sandbox Code Playgroud)

可以这样使用:

class Foo
  attr_accessor :block
end

foo = Foo.new
foo.block = proc {@x == "x" && @y != "y" || …
Run Code Online (Sandbox Code Playgroud)

ruby metaprogramming introspection

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

使用scanf读取C中的一定数量的字符?

我无法接受来自文本文件的输入.我的程序应该读入用户指定的字符串,并且该字符串的长度是在运行时确定的.当用户运行程序(手动输入值)时它工作正常,但是当我运行我的老师的文本文件时,它会遇到无限循环.

对于这个例子,当我接收4个字符并且他的文件中的输入是"ABCDy"时,它失败了."ABCD"是我应该阅读的内容,而'y'应该在以后用来知道我应该重新启动游戏.相反,当我使用scanf读入"ABCD"时,它也会读入'y'.有没有办法绕过这个使用scanf,假设我不知道字符串应该运行多久?

c string scanf

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

JPA:createNativeQuery.getSingleResult()返回一个对象,如何在该对象中获取一个属性的值

我有这样的查询

SET @rownum := 0; 
SELECT rank, id, point FROM
      (
      SELECT @rownum := @rownum + 1 AS rank, id, point FROM user ORDER BY point DESC
      ) AS result
WHERE id = 0;
Run Code Online (Sandbox Code Playgroud)

所以我EntityManager#createNativeQuery用来执行这个查询.

Object temp = em.createNativeQuery(sql).getSingleResult(); //sql is the above SQL query
Run Code Online (Sandbox Code Playgroud)

所以,现在的对象temp保存有关信息rank,idpoint.请注意,这rank不是我的实体内部的属性,rank是在查询执行时计算的 - >不能将此对象强制转换为我的实体.

那么我怎样才能获得价值rank

编辑
这是我正在寻找的答案.所以不要这样

Object temp = em.createNativeQuery(sql).getSingleResult();
Run Code Online (Sandbox Code Playgroud)

做这个

Object[] temp = (Object [])em.createNativeQuery(sql).getSingleResult();
Run Code Online (Sandbox Code Playgroud)

既然我想知道它的价值rank,那么我会这样做 …

java jpa

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

这个错误在nhibernate中意味着什么

出乎意料的是,当使用nhibernate进行大量更新时,我收到此错误.

行已被另一个事务更新或删除(或未保存的值映射不正确):[MyDomainObject]

错误中没有其他信息.是否有一些建议的方法来帮助确定根本问题,或者有人可以给我一个更好的解释这个错误指示或是一个sympton周围.

一些额外的信息

我查看了对象,所有数据看起来都很好,它有一个ID等..

请注意,这是在asp.net-mvc网站的单个调用堆栈中运行,因此我不希望在并发性方面存在任何线程问题需要担心.

nhibernate fluent-nhibernate

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

C++ STL对不同的容器是否是线程安全的(使用STLport实现)?

我使用的是Android 2.2,它附带了一个STLport版本.出于某种原因,它被配置为非线程安全的.这是在配置头文件中使用#define _NOTHREADS完成的.

当我从不同的pthreads 构造和初始化不同的非共享容器(例如字符串)时,我得到了内存损坏.

使用_NOTHREADS,看起来在allocator.cpp中的STL中的某些低级代码不能正确锁定.这似乎类似于C不为malloc提供线程安全性.

有谁知道为什么在Android上默认使用_NOTHREADS构建STL?通过关闭它,我想知道是否可能有副作用.我能想到的一件事是性能略有下降,但鉴于我使用了大量的线程,我没有看到太多的选择.

c++ stl thread-safety

11
推荐指数
1
解决办法
1484
查看次数

如何在编译时进行类型检查?

TraversableOnce,有一种sum方法只有在包含的类型是Numeric(否则它不会编译)时才可用.我想知道这是否可用于其他情况(以避免运行时检查).

特别的情况下,我们有两个特征A和B.我们希望有一个方法f只能如果对象继承使用两个 A和B.但是,如果它只是扩展不是其中之一.我不想再做一个trait AB extends A with B.我只是希望无法使用,f如果不是两个特征都被继承.

package com.example

trait Base
trait Foo extends Base {
  def g = println("foo bar " + toString)
}
trait Bar extends Base {
  /* If this is both Foo and Bar, I can do more */
  def f = {
    if (!this.isInstanceOf[Foo]) error("this is not an instance of Foo")
    this.asInstanceOf[Foo].g
  }
}
object Test {
  def main(args: Array[String]): Unit …
Run Code Online (Sandbox Code Playgroud)

types scala traits

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

.NET运行时序列化

有人可以解释从ISerializable界面继承和声明对象之间的区别是[Serializable]什么?

我知道在第一种情况下你必须实现ISerializable接口成员,而在第二种情况下,这项工作可能由C#本身完成.

但是对我来说没有意义的是以下行为:

public void Foo<T>() where T : ISerializable
{
   // Whatever
}
Run Code Online (Sandbox Code Playgroud)

现在,如果我有这样的课:

[Serializable]
public class Value
{
    public String Value { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

不幸的是我不能打电话给我X.Foo<Value>(),因为编译器说:

There is no implicit reference conversion from 'Value' to 'System.Runtime.Serialization.ISerializable'
Run Code Online (Sandbox Code Playgroud)

我很确定这是我对一些显而易见的事情的误解,所以请指出我做错了什么.


更新(重要:)

如何使where T : ISerializable语句也适用于[Serializable]类?有办法吗?

我想要实现的是编译时错误,如果提供的类型T不可序列化(通过使用[Serializable]ISerializable方式).

显然,我当前的检查仅处理第二种情况,那么如何让它处理它们呢?

c# serialization interface

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

你喜欢在哪里拆分长线?

对于手动包装长线,您选择破线的个人启发式是什么?

假设这条线太长,你可能在哪里打破它,它的优先顺序是什么?

double var = GetContext()->CalculateValue(element, 10.0);
Run Code Online (Sandbox Code Playgroud)


大多数人同意每行分离参数:

double var = GetContext()->CalculateValue(element,
                                          10.0);
Run Code Online (Sandbox Code Playgroud)


有没有人打破开幕式?

double var = GetContext()->CalculateValue(
                                 element, 10.0);
Run Code Online (Sandbox Code Playgroud)


但是如何解除引用运算符(或.):

double var = GetContext()
                 ->CalculateValue(element, 10.0);
Run Code Online (Sandbox Code Playgroud)

或者你会:

double var = GetContext()->
                 CalculateValue(element, 10.0);
Run Code Online (Sandbox Code Playgroud)


赋值运算符有什么不同?

double var = 
    GetContext()->CalculateValue(element, 10.0);
Run Code Online (Sandbox Code Playgroud)

要么

double var
    = GetContext()->CalculateValue(element, 10.0);
Run Code Online (Sandbox Code Playgroud)

还有其他人?


如果您的系统是程序性的,您可以这样回答:

  1. 逗号中的参数名称
  2. 在a ->.运营商之前
  3. 在赋值运算符之后

或者只是发布一些示例代码!
如果您可以在学术上证明您的决定权,那么奖励积分.

c++ whitespace coding-style line-breaks

8
推荐指数
1
解决办法
3572
查看次数

团队代理是唯一可以建立Ad Hoc的人?

首先是一点背景.我正在为客户构建移动应用程序,此客户端目前拥有他们希望从中分发应用程序的开发人员帐户.以前,我一直在使用自己的开发者帐户来构建ad hoc,以便将里程碑版本发送给客户端.我们现在正在接近发货,我已经开始将构建转移到使用客户端的凭据.

老实说,这是我第一次使用我自己的开发者帐户中的应用程序,因此即使设置开发证书/配置也会遇到一些麻烦.具体来说,我无法使用他们现有的开发人员证书,但我在我的机器上创建了一个,上传并批准了.那很好,我现在正在我的设备本地构建.

但是,(这是我的问题)我遇到了问题,为他们设置临时发行版.即,安装他们的临时证书似乎不起作用.我的假设是因为它不是在我的机器上构建的.但是,作为非团队代理,没有设施来创建我自己的Ad Hoc证书.

是否只有团队代理可以从他们的机器上做Ad Hoc(我假设提交构建)?作为团队成员,我无法从我的开发机器中进行临时构建吗?

iphone distribution adhoc

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

Rails url_for和命名空间模型

在Rails中,是否可以在模块中命名模型并仍然从中获得正确的行为url_for

例如,在这里,url_for按预期工作:

# app/models/user.rb
class User < ActiveRecord::Base
end

# config/routes.rb
resources :users

# app/views/users/index.html.haml
= url_for(@user)    # /users/1
Run Code Online (Sandbox Code Playgroud)

User模型放入模块后,url_for抱怨一个未定义的方法m_user_path:

# app/models/m/user.rb
module M
  class User < ActiveRecord::Base
  end
end

# config/routes.rb
resources :users

# app/views/users/index.html.haml
= url_for(@user)    # undefined method 'm_users_path'
Run Code Online (Sandbox Code Playgroud)

是否有可能有url_for忽略模块M::User,并返回user_path用于url_for(@user)代替m_user_path

UPDATE

所以,经过近5年的时间,这是解决方案,感谢esad.这已在Rails 4.2中测试过.

# app/models/m/user.rb
module M
  class User < ActiveRecord::Base
  end
end

# app/models/m.rb
module M …
Run Code Online (Sandbox Code Playgroud)

namespaces ruby-on-rails url-for ruby-on-rails-3

13
推荐指数
1
解决办法
4509
查看次数