小编Dav*_*uth的帖子

Java访客模式2

以下是我用更好的代码示例提出的问题的后续问题:

以下代码使用访问者模式:

class Animal { void accept(Visitor v) { v.visit(this); } }
class Cat extends Animal {}
class Dog extends Animal {}
class Poodle extends Dog {}

interface Visitor {
    public void visit(Animal a);
    public void visit(Cat a);
    public void visit(Dog a);
    public void visit(Poodle a);
}

class TalkVisitor implements Visitor {
    public void visit(Animal a) { System.out.println("?"); }
    public void visit(Cat a) { System.out.println("Meow"); }
    public void visit(Dog a) { System.out.println("bark"); }
    public void visit(Poodle a) { System.out.println("Arf"); } …
Run Code Online (Sandbox Code Playgroud)

java design-patterns visitor

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

如何在 QStatusBar 中获取彩色瞬时消息?

我需要对在 Qt5.5 应用程序的状态栏中闪烁的消息进行颜色编码。

我正在像这样使用 showMessage:

ui->statusBar->showMessage("My Message", 5000);
Run Code Online (Sandbox Code Playgroud)

我想更改单个消息的颜色。我发现除了子类化 QStatusBar 和覆盖 showMessage() 之外,别无他法。我真的需要这种侵入性的改变吗?

我尝试使用富文本:

ui->statusBar->showMessage(QString("<html><head/><body><p style=\"color:red\">%1</p></body></html>").arg("My Message"));
Run Code Online (Sandbox Code Playgroud)

但它似乎没有被识别(打印标签)。

更改调色板或设置样式表将不限于当前消息。

我还能尝试什么?

qt message colors qstatusbar

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

我可以使用什么正则表达式将字符串拆分成单词但将短语括在圆括号中?

我想拆分这样的字符串:

my_string = "I want to split this (these should stay together) correctly"
Run Code Online (Sandbox Code Playgroud)

并得到以下结果:

["I", "want", "to", "split", "this", "(these should stay together)", "correctly"]
Run Code Online (Sandbox Code Playgroud)

我试过这个:

my_string.split(/(?=[^\(]){1,} (?=[^\)]){1,}/)
Run Code Online (Sandbox Code Playgroud)

但是圆括号内的元素是分开的.我怎样才能做到这一点?

ruby regex

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

Haskell Fibonacci 函数的良好风格

我只是在学习 Haskell 并尝试实现一个函数来获取包含前 N 个斐波那契数的列表:

fibonacci :: Integer -> [Integer]
fibonacci 1 = [0]
fibonacci 2 = fibonacci 1 ++ [1]
fibonacci n = appendSumOfLastTwo (fibonacci (n - 1))

appendSumOfLastTwo :: (Num a) => [a] -> [a]
appendSumOfLastTwo xs = xs ++ [addLastTwo xs]

addLastTwo :: (Num a) => [a] -> a
addLastTwo xs = last xs + (xs !! ((length xs) - 2))
Run Code Online (Sandbox Code Playgroud)

这有效但不是很漂亮,因为它需要两个名称奇怪的辅助函数。在 Haskell 中,有这样一个单独使用的函数是常见的吗?

为了摆脱这些函数,我尝试了匿名函数:

fibonacci :: Integer -> [Integer]
fibonacci 1 = [0]
fibonacci 2 = …
Run Code Online (Sandbox Code Playgroud)

haskell anonymous-function fibonacci

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

如何将找到的每个值映射到另一个变量

我想创建一个厨师食谱,我坚持这一步:

members = search("node", "recipe:redis AND chef_environment:#{node.chef_environment}") || []
members.each do |node|
  puts "#{node["ipaddress"]}"
end
Run Code Online (Sandbox Code Playgroud)

这是有效的,并返回找到的三个服务器的IP地址.但我想分配/给每个找到的VALUE(IP地址)一个变量,因为我将运行如下命令:

execute 'command' do
  command "redis-trib.rb create --replicas 1 #{node1}:6379 #{node2}:6379 #{node3}:6379 #{node1}:6380 #{node2}:6380 #{node3}:6380"
end
Run Code Online (Sandbox Code Playgroud)

ruby chef-infra

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

为什么Cucumber和Capybara称之为?

有谁知道为什么这些名字被选为Capybara和Cucumber?或者他们只是随机挑选?

ruby bdd acceptance-testing cucumber capybara

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

将元音推进Ruby中的下一个元音

我正在研究初学Ruby教程.我正在尝试编写一种方法,将元音推进到下一个元音.'a'将成为'e','e'将成为'i','u'将成为'a'等等.我已经尝试了很长一段时间的各种想法,但无济于事.

我想我正处于正确的轨道上,因为我需要创建一个元音数组,然后使用索引将它们推进到元音中的下一个数组.我似乎无法创建正确的方法来这样做.

我知道这不是可行的代码,但我的大纲是这些.遇到问题的地方是让我的代码识别每个元音,并将其推进到下一个元音:

def vowel_adv(str)
    vowels = ["a", "e", "i", "o", "u"]

    str = str.split('')
    **str_new = str.map do |letter| 
    if str_new.include?(letter)
        str_new = str_new[+1]
    end**
    # The ** section is what I know I need to find working code with, but keep hitting a wall.
    str_new.join
end
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激.

ruby string

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

如何生成用于单元测试的临时文件?

测试方法允许将 a 添加path到用户添加的包含数据的其他文件中。

例如,用户可能会data.txt/workspace/data目录中存储一个调用的文件。我们希望将此目录的路径添加到名为DATA_PATH.

方法:

def add_custom_path(path)
  DATA_PATH.unshift(path)
end
Run Code Online (Sandbox Code Playgroud)

哪里path是在Rails应用程序用户存储文件的位置。

宝石使用test-unit.

题:

有没有办法在某个目录中临时生成一个文件,运行一个assert_not_empty测试,然后让文件消失?

我没有为 gem 编写测试的经验,因此非常感谢任何指导。

ruby rubygems ruby-on-rails testunit

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

州模式:为什么国家不是单身人士?

我使用State模式来实现一个简单的有限状态机.看一下维基百科上给出的描述,更具体地说是建议的Java实现,我想知道为什么实现State接口的类(即各种状态)不是单例?

在建议的实现中,每当发生转换时都会创建一个新状态.但是,一个对象足以代表每个状态.那么,为什么每次发生转换时都会浪费时间创建一个新实例?

java state design-patterns

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

CQS和ASP.NET MVC操作

阅读有关CQS原理的人知道:

CQS声明每个方法应该是执行操作的命令,或者是将数据返回给调用者的查询,而不是两者.

说到ASP.NET MVC动作,CQS是否表明我们不应该有这样的动作?

public PartialView InsertOrder(Order order)
{
       OrderService.InsertOrder(order);
       return PartialView("OrderDetails", order);
}
Run Code Online (Sandbox Code Playgroud)

此方法正在更改系统的状态并返回当前状态.如果在这里应用CQS,我们应该有两个单独的操作:一个用于插入新订单,一个用于获取系统系统(如果第一个Action成功完成,应该从客户端调用).但是,这使编程变得复杂.

我想知道你对此的看法.

MOSH

asp.net-mvc command-query-separation

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