小编Doc*_*awk的帖子

Hash是否重写Enumerable#map()?

既然map()定义了Enumerable,Hash#map yield两个变量怎么能阻止?是否Hash覆盖Enumerable#map()

这是一个小例子,为了好玩:

ruby-1.9.2-p180 :001 > {"herp" => "derp"}.map{|k,v| k+v}
 => ["herpderp"] 
Run Code Online (Sandbox Code Playgroud)

ruby enumerable

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

是否可以手动分解 C++ 符号?

我收到一些这样的错误:

dyld: lazy symbol binding failed: Symbol not found: __ZN2nm8RationalIxEC1ERKNS_10RubyObjectE
  Referenced from: /Users/jwoods/Projects/nmatrix/lib/nmatrix.bundle
  Expected in: flat namespace

dyld: Symbol not found: __ZN2nm8RationalIxEC1ERKNS_10RubyObjectE
  Referenced from: /Users/jwoods/Projects/nmatrix/lib/nmatrix.bundle
  Expected in: flat namespace
Run Code Online (Sandbox Code Playgroud)

然后同样的__ZN2nm7ComplexIfEC1ERKNS_10RubyObjectE.

不幸的是,c++filt似乎并不想分解这些。当我尝试在c++filtjs 在线界面中输入它们时中输入它们时,我得到“不是损坏的 C++ 符号”。

我对错误消息有点困惑,因为示例c++filtjs给出的是_ZN9wikipedia7article8wikilinkC1ERKSs,它代表wikipedia::article::wikilink::wikilink(std::string const&)。我看到了几种模式,其中ZN#78for ::、 和C1ERK我猜测是对构造函数的某种传递引用。

我猜它是在抱怨它缺少我的构造函数之一class Rational,例如Rational::Rational(RubyObject const&).Rational但是,它是一个模板,因此了解缺少哪个版本会对我有所帮助。

但这里的问题实际上是我如何用手拆开。=)

c++ demangler

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

ZeroMQ:我希望Publish-Subscribe删除旧消息,而不是更新消息

我正在使用ZeroMQ发布 - 订阅套接字来连接两个进程.发布过程是一个传感器,刷新率比订阅过程快得多.我希望订阅过程只使用队列中的最新消息 - 并完全忽略旧消息.

我尝试在订阅者身上设置一个高水位标记,但这似乎会删除较新的消息而不是较旧的消息.

是否有人可以指导我为此目的的发布 - 订阅模式?

publish-subscribe zeromq

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

实例方法"each_with_index"定义在哪里?

我正在寻找Ruby 1.8.6文档,并没有提到each_with_index那里.但是,如果我启动Ruby 1.8.7或1.9.2并运行以下命令,它可以工作:

h = {:a => 1, :b => 2.2}
h.each_with_index do |pair, i|
  p pair, i
end
Run Code Online (Sandbox Code Playgroud)

哪里each_with_index来的?Hash.superclasssObject,并且Object没有实现此实例方法.

ruby enumerable

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

如何枚举数组中的连续元素?

例如,我有一个

arr = [1,2,3,4]
Run Code Online (Sandbox Code Playgroud)

如果我打电话arr.each,我会访问:

1
2
3
4
Run Code Online (Sandbox Code Playgroud)

但我想要

1 2
2 3
3 4
Run Code Online (Sandbox Code Playgroud)

内置功能有可能吗?如果没有,最佳做法是什么?

另一个问题:如果我想要1 23 4

ruby enumerable

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

在Ruby中创建一个新的类实例

我是编程的初学者,写了一个简单的程序:

class Chapter
  def initialize
@text
@number
  end
end

def new_chapter
  tmp_chapter = Chapter.new
  tmp_chapter.text = 'Chapter about ..'
  tmp_chapter.number = '11'
end

puts new_chapter
puts ObjectSpace.each_object(Chapter) {|x| p x}
Run Code Online (Sandbox Code Playgroud)

但我得到这个错误:

 test2.rb:10:in `new_chapter': undefined method `text=' for #<Chapter:0x200b830>
 (NoMethodError)
 from test2.rb:14:in `<main>'
Run Code Online (Sandbox Code Playgroud)

那我做错了什么?我知道还有其他方法可以创建一个新实例,但我想这样做!谢谢!

ruby

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

标签 统计

ruby ×4

enumerable ×3

c++ ×1

demangler ×1

publish-subscribe ×1

zeromq ×1