小编And*_*imm的帖子

为什么有这么多略微不同的方法在Ruby中做同样的事情?

我正在学习Ruby.我的背景是C++/Java/C#.总的来说,我喜欢这种语言,但我有点困惑为什么有很多不同的方法来完成同样的事情,每种方法都有自己略有不同的语义.

例如,创建字符串.我可以使用'',",q%,Q%或只是%来创建字符串.某些形式支持插值.其他形式允许我指定字符串分隔符.

为什么有五种方法来创建字符串文字?为什么我会使用非插值字符串?%语法比引用文字有什么优势?

我知道Ruby中的redundency一定有价值,但是我未经训练的眼睛并没有清楚地看到它.请赐教.

ruby timtowtdi

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

当它们被日期描述时,是否可以选择一个git stash?

我可以按日期列出git stashes

git stash list --date=local
Run Code Online (Sandbox Code Playgroud)

但是如何在没有获取的情况下选择修订版本

fatal: Needed a single revision
Run Code Online (Sandbox Code Playgroud)

git git-stash

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

如何使用Ruby/Rails缓存方法?

我有一个昂贵的(耗时的)外部请求到我需要做的另一个Web服务,我想缓存它.所以我试图通过将以下内容放在应用程序控制器中来使用这个习惯用法:

def get_listings
  cache(:get_listings!)
end

def get_listings!
  return Hpricot.XML(open(xml_feed))
end
Run Code Online (Sandbox Code Playgroud)

当我get_listings!在我的控制器中调用时,一切都很酷,但是当我调用get_listingsRails时,抱怨没有给出任何阻止​​.当我查找该方法时,我发现它确实期望一个块,另外看起来该方法仅用于视图?所以我猜测虽然没有说明,但这个例子只是伪代码.

所以我的问题是,如何缓存这样的东西?我尝试了其他各种方法,但无法弄明白.谢谢!

ruby caching idioms ruby-on-rails memoization

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

Ruby要求'文件'不起作用但需要'./file'.为什么?

我有一个充满ruby文件的文件夹,当我尝试在另一个文件中使用另一个文件时,require 'file'我得到一个LoadError但是当我使用时,require './file'一切正常.有人可以向我解释为什么会发生这种情况,如果有任何方法我可以在不添加文件的情​​况下需要./文件吗?

(目录图片): 替代文字

ruby require

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

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

Ruby - 如何重新定义类方法?

如何在ruby中重新定义类方法?

比方说,例如,我想重新定义方法File.basename("C:\abc.txt")我该怎么做?

这不起作用:

class File
  alias_method :old_bn, :basename

  def basename(*args)
    puts "herro wolrd!"
    old_bn(*args)
  end
end
Run Code Online (Sandbox Code Playgroud)

我明白了 : undefined method 'basename' for class 'File' (NameError)

顺便说一下,我正在使用 JRuby

ruby

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

如何让Ruby'puts'将数据写入文件?

我有以下代码,我想用来ping IP地址和写入文件.一切正常,除了我无法写入文件.

server = %w'192.168.150.254
192.168.150.251
192.168.120.1
192.168.120.2'

File.open('/test/test2.out','w') do |s|
  server.each do |p|
    r = `ping -a -n 1 #{p}`
    puts r
  end
end
Run Code Online (Sandbox Code Playgroud)

ruby

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

什么是Ruby的ThreadGroup?

我正在翻阅Pickaxe,寻找文档Thread,然后遇到了ThreadGroup.

文档描述了它的作用,但它没有解释它的用途.

是一个与线程池相关的线程组,我认为Ruby没有

ruby multithreading

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

为什么Array.to_s返回括号?

对于数组,当我输入:

puts array[0]

==> text 
Run Code Online (Sandbox Code Playgroud)

然而,当我打字

puts array[0].to_s

==> ["text"]
Run Code Online (Sandbox Code Playgroud)

为什么括号和引号?我错过了什么?

ADDENDUM:我的代码看起来像这样

page = open(url)  {|f| f.read }
page_array = page.scan(/regex/) #pulls partial urls into an array
partial_url = page_array[0].to_s
full_url = base_url + partial_url #adds each partial url to a consistent base_url
puts full_url
Run Code Online (Sandbox Code Playgroud)

我得到的是:

http://www.stackoverflow/["questions"]
Run Code Online (Sandbox Code Playgroud)

ruby regex arrays html-parsing

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

在语法上是否需要明确的开放和封闭分隔符?

在智能引号和编程语言之间进行类比时,我想到打开和关闭分隔符的不同字符可能不是必需的,而只是可读性的选择.

例如,Ruby的匿名函数中的参数使用相同的管道来打开和关闭.Haskell使用极端偏见的白色空间.

如果不同的我不问类型的分隔符是必要的-为索引括号,括号为块-但无论是独特的打开和关闭括号(如())是语法上是必须的大多数语言,或只是设计者的偏好.

c# ruby haskell language-design

10
推荐指数
3
解决办法
548
查看次数