草庐IT

Regional_Indicator_Symbol

全部标签

ruby - 为什么 Symbol#to_proc 有这种类型的行为?

我找到了这个在Ruby中实现自定义Symbol#to_proc的示例代码:classSymboldefto_procputs"InthenewSymbol#to_proc!"Proc.new{|obj|obj.send(self)}endend它包含额外的“puts...”字符串以确保它不是内置方法。当我执行代码时p%w{davidblack}.map(&:capitalize)结果是:InthenewSymbol#to_proc!["David","Black"]但为什么不是这样呢?InthenewSymbol#to_proc!["David"]InthenewSymbol#to_p

ruby - CSV header_converters : :symbol giving inconsistent results

将RubyCSVfor_each与headers:true,header_converters::symbol结合使用我无法预测生成的标题符号是什么。有时它只是小写并用下划线替换空格,所以"Name"变成:name,但有时它用下划线作为符号的前缀和后缀,所以"Latitude"变为:_latitude_。这是一个相当小的刺激——我可以只查看转换后的行并查看标题是什么,但我想了解它发生的原因(以及我是否可以轻松地阻止它)。我查找了有关header_converters::symbol的文档,但只能发现它将header转换为符号(我知道),而不是如何进行转换。有人可以帮忙吗?

ruby-on-rails - 关于 Symbol 对象的 Ruby 文档具有误导性

我是Ruby的新手,和其他人一样,我无法理解Ruby符号。我知道这个主题已被多次提及,但我相信这篇文章可能与其他文章略有不同。如果没有,我很抱歉。以documentation中的这段代码为例.moduleOneclassFredend$f1=:FredendmoduleTwoFred=1$f2=:FredenddefFred()end$f3=:Fred$f1.object_id#=>2514190$f2.object_id#=>2514190$f3.object_id#=>2514190我的提示是,它让我们认为类、模块或函数与:Fred符号之间存在联系。难怪人们会问“我可以为符号赋值吗

ruby 1.9.3-p0 乘客 "Symbol not found: _ruby_current_thread"

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Rails3.1andRuby1.9.3p125:ruby-debug19stillcrasheswith“Symbolnotfound:_ruby_threadptr_data_type”刚刚更新到1.9.3-p0,更新了我所有的gem等等,但我的应用程序仍然无法启动。乘客错误:Errormessage:dlopen(/Users/username/.rvm/gems/ruby-1.9.3-p0/gems/ruby-debug-base19-0.11.25/lib/ruby_debug.bundle,9):

ruby - undefined symbol : SSLv2_method when trying to run Thin webserver

我已经用rvm安装了OpenSSL(rvmpkginstallopenssl)然后rvmreinstall1.9.3--with-openssl-dir=$rvm_path/usr当我尝试运行瘦网络服务器时,出现以下错误:/home/ubuntu/.rvm/rubies/ruby-1.9.3-p327/lib/ruby/1.9.1/x86_64-linux/openssl.so:undefinedsymbol:SSLv2_method-/home/ubuntu/.rvm/rubies/ruby-1.9.3-p327/lib/ruby/1.9.1/x86_64-linux/openssl

ruby-on-rails - 向 Symbol 添加 to_str 方法有什么负面影响?

我在一个ruby​​应用程序中工作,在这个应用程序中,符号被用于不同的地方,而在这些地方人们通常会使用其他语言的字符串或枚举(主要用于指定配置)。所以我的问题是,为什么我不向符号添加to_str方法?这似乎是明智的,因为它允许符号和字符串之间的隐式转换。所以我可以做这样的事情而不必担心调用:symbol.to_s:File.join(:something,"something_else")#=>"something/something_else"负数与正数相同,它隐式地将符号转换为字符串,如果它导致一个模糊的错误,这可能会非常困惑,但考虑到符号的通常使用方式,我不确定这是否是一个有效的

ruby - 明确地产生 n 值给 Symbol#to_proc

我discoveredtonightRuby的Symbol#to_proc处理第一个以外的其他产生值作为方法调用的参数。换句话说,这两个方法调用是等价的:yields_three{|a,b,c|a.foo(b,c)}yields_three(&:foo)我认为这可能是一个值得探索的强大(或至少有趣)的习语,因此我尝试了以下方法:classPlayerdefadd_score(points)@score+=pointsendendmy_array_of_players.zip(my_array_of_turn_scores).each(&:add_score)不幸的是,这不起作用:NoM

c - 为什么 Ruby 1.8.7 中的 Symbol#to_proc 变慢了?

RelativePerformanceofSymbol#to_procinPopularRubyImplementations声明在MRIRuby1.8.7中,Symbol#to_proc在其基准测试中比替代方案慢30%到130%,但在YARVRuby1.9.2中并非如此。为什么会这样?1.8.7的创建者没有用纯Ruby编写Symbol#to_proc。此外,是否有任何gem可以为1.8提供更快的Symbol#to_proc性能?(符号#to_proc在我使用ruby​​-prof时开始出现,所以我不认为我犯了过早优化的罪) 最佳答案

Ruby Symbol#to_proc 在 1.9.2-p180 中泄漏引用?

好的,这是我第二次尝试调试Sinatra应用程序的内存问题。我相信这次我已经将它确定为简单的示例代码。似乎当我通过.map(&:some_method)过滤数组时,它会导致该数组中的项目无法被垃圾回收。运行等效的.map{|x|x.some_method}完全没问题。演示:给定一个简单的示例类:classCdeffoo"foo"endend如果我在IRB中运行以下命令,它会被正常收集:ruby-1.9.2-p180:001>a=10.times.map{C.new}=>[...]ruby-1.9.2-p180:002>b=a.map{|x|x.foo}=>["foo","foo","f

ruby 1.8.7 : Symbol not found Error

刚刚在带有新gem集(使用RVM)的机器上全新安装了ruby​​1.8.7REE和MRI,但是当我尝试使用memprof时,我得到了这个错误$geminstallmemprof$irb>>require'rubygems'>>require'memprof'>>LoadError:dlopen(/Users/schneems/.rvm/gems/ruby-1.8.7-p352@test/gems/memprof-0.3.10/lib/memprof.bundle,9):Symbolnotfound:__mh_bundle_headerReferencedfrom:/Users/schn