问题列表 - 第15030页

如何使这个ruby方法不那么难看(嵌套)

我有一个帮助方法,为一些控制器创建导航链接.

  def gen_associations(controllers)
    content_for :leftnav do
      sorted_controllers = controllers.sort
      returning String.new do |content|
        content << content_tag(:h3, "Associations") <<
        content_tag(:ul, :class => "nav") do
          sorted_controllers.collect do |c|
            content_tag("li", :class => ("last" if c == sorted_controllers.last)) do
              link_to(c.humanize, eval("admin_#{c}_url"))
            end
          end
        end
      end
    end
  end
Run Code Online (Sandbox Code Playgroud)

我不喜欢这种深层嵌套的结构,以及<<其中一条线的额外和结束.

我怎样才能重写它所以它不是那样嵌套(在更少的行中)和没有长行(<80个字符)?

ruby coding-style nested ruby-on-rails

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

找到三重中间值的最快方法?

给定是一个包含三个数值的数组,我想知道这三个数值的中间值.

问题是,找到三者中间最快方法是什么?

我的方法是这种模式 - 因为有三个数字有六种排列:

if (array[randomIndexA] >= array[randomIndexB] &&
    array[randomIndexB] >= array[randomIndexC])
Run Code Online (Sandbox Code Playgroud)

如果有人可以帮助我找到更优雅,更快捷的方法,那将是非常好的.

java algorithm logic conditional median

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

代码高尔夫:黑白棋

好的,这是一个相当复杂的代码高尔夫挑战:实施一个黑白棋(奥赛罗)游戏.

  • 游戏应显示游戏板的当前状态,并允许单台计算机上的玩家交替输入动作.
  • 必须捕获不正确的输入和不允许的移动,但可以静默忽略.
  • 游戏必须在不再进行任何动作时结束(因为棋盘已满或因为没有动作会翻转任何棋子).
  • 然后游戏必须宣布谁赢了,或者是否是平局.

以尽可能少的字符执行此操作.

会话应该看起来像这样:

 abcdefgh
1        
2        
3        
4   wb   
5   bw   
6        
7        
8        
b>d3
 abcdefgh
1        
2        
3   b    
4   bb   
5   bw   
6        
7        
8        
Run Code Online (Sandbox Code Playgroud)

code-golf reversi

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

常见问题

我现在应该得到这个,但我还没有得到它.问题是operator =的参数可能是非const,但是它会破坏std :: vector :: push_back,因为它使项目为const,所以operator =必须接受一个const对象.好吧,我不确定我应该如何修改这个像这样工作的对象.

#include <vector>
#include <map>
#include <iostream>

using namespace std;

int font[] = {0, 31, 0, 31, 0, 31, 0, 31};

class Foo {
    int size_;
    std::map<int, int> chars_;
    public:
    Foo(int *font, int size);
    unsigned int Size() const { return size_; }
    void Add(int ch);
    bool operator==(const Foo &rhv) const;
    int &operator[](int i);
    int const operator[](int i);
    Foo operator=(const Foo &rhv);
};

Foo::Foo(int *font, int size) {
    for(int i = 0; i < size; …
Run Code Online (Sandbox Code Playgroud)

c++ const

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

如何从DWORD RGBA转换为int?

我必须将一个DWORD(无符号长)RGBA转换为四个int变量(R,G,B和A)到目前为止,我有这个函数将4个int转换为DWORD:

unsigned long RGBA2DWORD(int iR, int iG, int iB, int iA)
{
    return ((iA << 24) | (iR << 16) | (iG << 8) | iB);
}
Run Code Online (Sandbox Code Playgroud)

我该如何将其转换回来?

就像是

struct RGBA
{
    int R, G, B, A;
};

RGBA DWORD2RGBA(unsigned long dwColor)
{
    static RGBA tmp;
    //.......conversion process
    return tmp;
}
Run Code Online (Sandbox Code Playgroud)

任何形式的帮助将不胜感激!:)

谢谢

c++

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

需要了解使用RAMDirectory的优缺点

我需要提高Lucene搜索查询的性能.我可以使用RAMDirectory吗?它是否可以优化性能?是否有任何索引大小限制?如果有人能列出使用RAMDirectory的优点和缺点,我将不胜感激.

谢谢.

lucene lucene.net

9
推荐指数
3
解决办法
5958
查看次数

如何判断对象是否附加了键值观察器

如果你告诉一个目标c对象removeObservers:对于一个关键路径并且该关键路径尚未注册,它会破坏sads.喜欢 -

'无法删除关键路径"theKeyPath"的观察者,因为它未注册为观察者.

有没有办法确定一个对象是否有一个注册的观察者,所以我可以做到这一点

if (object has observer){
  remove observer
}
else{
  go on my merry way
}
Run Code Online (Sandbox Code Playgroud)

cocoa key objective-c key-value-observing

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

开始跟踪仅跟踪主干的git-svn仓库上的分支/标签

我已经开始使用git跟踪一个svn存储库,只通过克隆它的trunk目录.现在我想跟踪其他东西,但我不想再次克隆它只是为了使用,--stdlayout因为它需要很长时间才能下载并且我已经在本地拥有大部分代码.如何更改存储库布局以匹配svn trunk/branches/tags方案而无需再次克隆?

svn git version-control git-svn

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

用第二个数组中的值替换第一个数组中的字符串

出于某种原因,我正在努力解决这个问题.

我有以下2个数组,我需要从$ img数组中获取数组值并将它们按顺序插入到$ text数组中,附加/替换%img_标记,如下所示:

$text = array(
    0 => "Bunch of text %img_ %img_: Some more text blabla %img_",
    1 => "More text %img_ blabla %img_"
);

$img = array("BLACK","GREEN","BLUE", "RED", "PINK");
Run Code Online (Sandbox Code Playgroud)

我希望我的$ text数组最终如此:

$text = array(
    0 => "Bunch of text %img_BLACK %img_GREEN: Some moretext blabla %img_BLUE",
    1 => "More text %img_RED blabla %img_PINK"
);
Run Code Online (Sandbox Code Playgroud)

注意:$ img数组中的项目数将有所不同,但始终与$ text数组中%img_的数量相同.

php regex arrays

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

使Perl脚本在Perl中检测单独配置模块中的更改

天儿真好,

我们有一个Perl脚本,负责处理来自主要网站的前端服务器的地理定位请求.该脚本是一个代理,提供额外的业务逻辑,解释由COTS产品返回的数据,该产品为给定的IP地址提供数据,例如国家,连接类型,路由类型,运营商等.

此Geo服务当前正处理COTS后端每秒约1,000个请求的峰值负载.BTW它实际上是从其专用的负载均衡/缓存层提供5,000个请求ps,它直接位于代理层之前.

我最近不得不修改这个代理的行为,以允许我们在网站上看到的新类型的连接,这会引起一些问题.

脚本的原始版本,不是我的设计!btw,是使用脚本本身中的配置项和单独的Perl片段中的其他项混合构建的.正如在我的更改的同行评审期间非常正确地指出的那样,我们应该将所有配置项迁移到单独的而不是继续混合使用嵌入式和单独的配置项.

现在我想更进一步,将所有配置项(作为单独的Perl哈希创建)放入一个配置文件中.

目前,我们必须停止并重新启动整个应用程序以重新加载新的配置项,考虑到流量水平,即使在两个独立的数据中心有四个代理实例,我们也不会真正丢失服务.

我怀疑我将不得不求助于保留计时器,或者可能是请求计数器,并对有问题的配置文件执行统计.或者甚至可以为配置文件配置一个TTL,并且每隔十分钟左右重新加载一次.

但有没有办法让Perl自动重新加载以前加载的文件的较新版本?我正在考虑Apache mod_perl模块提供的行为.

干杯,

perl solaris configuration-files

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