小编Mat*_* S.的帖子

Ruby Structs中的命名参数

如果这是一个显而易见的问题,我对Ruby很新,所以道歉.

我想在实例化Struct时使用命名参数,即能够指定Struct中哪些项获取什么值,并将其余项默认为nil.

例如,我想做:

Movie = Struct.new :title, :length, :rating
m = Movie.new :title => 'Some Movie', :rating => 'R'
Run Code Online (Sandbox Code Playgroud)

这不起作用.

所以我想出了以下内容:

class MyStruct < Struct
  # Override the initialize to handle hashes of named parameters
  def initialize *args
    if (args.length == 1 and args.first.instance_of? Hash) then
      args.first.each_pair do |k, v|
        if members.include? k then
          self[k] = v
        end
      end
    else
      super *args
    end
  end
end

Movie = MyStruct.new :title, :length, :rating
m = Movie.new :title => 'Some Movie', :rating => …
Run Code Online (Sandbox Code Playgroud)

ruby struct named-parameters

30
推荐指数
5
解决办法
9036
查看次数

从Flutter中的脚手架AppBar中删除阴影?

有没有办法在Flutter中使用Scaffold小部件时删除应用栏(AppBar类)下的投影?

flutter

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

达到条件时如何使 Timer.periodic 自行取消?

Timer.periodic() 重复执行一个函数很好,但是如果在定时器正在执行的函数之外达到任意条件,是否可以让定时器自行取消?

dart

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

在Node.js中处理异步循环的最佳模式

我是Node的新手,并试图确保我为JSON驱动的Web应用程序使用理智的设计.

我有一堆数据存储在Redis中,我正在通过节点检索它,将结果流出来,因为它们来自Redis.这是我正在做的一个很好的例子:

app.get("/facility", function(req, res) {
    rc.keys("FACILITY*", function(err, replies) {
        res.write("[");
        replies.forEach(function (reply, i) {
            rc.get(reply, function(err, reply) {
                res.write(reply);
                if (i == replies.length-1) {
                    res.write("]");
                    res.end();
                }
                else
                    res.write(",");
            });
        });
    });
});
Run Code Online (Sandbox Code Playgroud)

基本上我从Redis获取一组密钥然后请求每个密钥,将结果流式传输到半手动创建的JSON(Redis中的字符串已经是JSON).现在这很好用,但我不禁想到i == replies.length-1有点乱?

我可以用Redis中的mget完成所有这些,但这并不是我想要得到它的重点; 这是如何最好地处理与forEach的异步循环,流式输出和优雅地关闭与res.end的连接与循环完成.

这是最好的方式,还是我可以遵循更优雅的模式?

javascript redis node.js

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

Facebook Messenger bot出现551错误 - "此人暂时无法使用"

我为Facebook Messenger编写了一个简单的机器人,它接受用户的文本,应用简单的转换并立即返回结果.

在自己测试时,我从来没有遇到过问题,但似乎对于某些用户来说,当转换后的消息被发送回来时,Facebook会返回以下错误(来自我的服务器日志):

"www-authenticate":"OAuth \"Facebook平台\"\"invalid_request \"\"(#551)此人暂时无法使用.\""

任何想法是什么原因?它似乎随意发生在随机用户身上,并且用户应该可用,因为结果会立即返回.

谢谢!

facebook facebook-graph-api facebook-messenger facebook-messenger-bot

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