jjzjj

basic_string

全部标签

ruby - 在 Ruby 中,String() 和 #to_s 有什么区别

String(1.1)==(1.1).to_s=>trueString(1.1)===(1.1).to_s=>true这两种强制方式有区别吗?如果可以,你能演示一下吗? 最佳答案 docsfortheStringmethod说:ConvertsargtoaStringbycallingitsto_smethod.所以通常它们是相同的,但也有一些差异——尽管您不太可能真正看到它们。String()检查其参数的类,如果它还不是String,则对其调用to_s。直接调用to_s意味着无论如何都会调用该方法。考虑类:classMyStrin

ruby-on-rails - 为什么 String#gsub 的内容加倍?

s="#main='quotes's.gsub"'","\\'"#=>"#main=quotes'quotes"这似乎是错误的,我希望得到"#main=\\'quotes\\'"当我不使用转义字符时,它会按预期工作。s.gsub"'","*"#=>"#main=*quotes*"所以一定有转义的事情。使用ruby1.9.2p290我需要用反斜杠和引号替换单引号。更多的不一致:"\\'".length#=>2"\\*".length#=>2#Asexpected"'".gsub("'","\\*").length#=>2"'a'".gsub("'","\\*")#=>"\\*a\\*"(

ruby - 是否有 Ruby string#blank?方法?

String#blank?非常有用,但存在于Rails中,而不存在于Ruby中。Ruby中是否有类似的东西来替换:str.nil?||str.empty? 最佳答案 据我所知,普通Ruby中没有这样的东西。您可以像这样创建自己的:classNilClassdefblank?trueendendclassStringdefblank?self.strip.empty?endend这将适用于nil.blank?和a_string.blank?您可以将其扩展(就像rails一样)用于true/false和一般对象:classFalseCl

ruby - 什么是枚举器对象? (使用 String#gsub 创建)

我有一个属性数组如下,attributes=["test,2011","photo","198.1x198.1cm","Photo:ManuPKFullScreen"]当我这样做时,artist=attributes[-1].gsub("Photo:")partist我在终端中得到以下输出#想知道为什么我得到一个枚举器对象作为输出?提前致谢。编辑:请注意,我做的不是attributes[-1].gsub("Photo:",""),而是attributes[-1].gsub("Photo:")所以想知道为什么枚举器对象返回到这里(我期待一条错误消息)以及发生了什么。?ruby-1.9.2

ruby-on-rails - `merge' :string <%= form_for %> helper 的未定义方法 '####'

我有一个表单,在发布时呈现另一个表单。我想做的是将参数从第一种形式传递到第二种形式的某些隐藏字段中。第二种形式是使用form_for形式助手,而我试图做的是让它接受传递给它的参数。表单如下所示:"btnbtn-largebtn-success"%>当我做类似的事情时这个Action给我错误:NoMethodErrorinFind_numbers#createShowingC:/Sites/dentist/app/views/phones/new.html.erbwhereline#17raised:undefinedmethod`merge'for"1231231234":String

ruby - 无法将 Symbol 转换为 String

我有以下Ruby代码,直接取自GettingStartedwithRails指南defcreate@post=Post.new(post_params)@post.saveredirect_to@postendprivatedefpost_paramsparams.require(:post).permit(:title,:text)end当我运行上面的Create时,出现以下错误。can'tconvertSymbolintostring 最佳答案 您似乎正在尝试使用强参数。你得到这个错误cannotconvertsymbolint

ruby - 在 String 子类上覆盖 =~ 方法会产生不一致

我为String的子类覆盖了=~方法:classMyString重写的方法在某些情况下被正确调用:r=/abc/s=~r#=>"Overriddenmethod."s.send(:=~,r)#=>"Overriddenmethod."s.send(:=~,/abc/)#=>"Overriddenmethod."而在其他情况下它被绕过,而是调用String#=~:s=~/abc/#=>0s=~(/abc/)#=>0我可以在Ruby1.8.7、2.1.0上重现这些结果。有人知道为什么会这样吗?是错误吗? 最佳答案 在String#=~的

ruby-on-rails - "Ascii85":String

安装rails时遇到问题,不断收到此ascii85字符串错误的错误(/usr/lib/ruby/gems/1.8/gems/rails-2.3.11/lib/rails/gem_dependency.rb:277:in`==':undefinedmethod`name'for"Ascii85":String(NoMethodError)).如果有人经历过这个。 最佳答案 它看起来像是RubyGems中的错误:http://rubyforge.org/tracker/index.php?func=detail&aid=29188&gr

ruby - String.scan 和 String.split 的区别

这两个(String#scan和String#split)在Ruby中有什么区别? 最佳答案 它们的用途完全不同。String#scan用于从字符串中提取正则表达式的匹配项并返回数组中的匹配项,而String#split旨在根据分隔符将字符串拆分为数组。分隔符可以是静态字符串(如;在单个分号上拆分)或正则表达式(如/\s/+在任何空白字符上拆分).String#split的输出不包含分隔符。相反,除了定界符之外的所有内容都将在输出数组中返回,而String#scan的输出将仅包括与定界符匹配的内容。#Adelimitedstring

ruby - Ruby 中用于 "String#include?"的算法

有谁能指出包含的算法是什么?Ruby中的方法?例如"helloworld".include?("hello") 最佳答案 正如emboss在他的回答中所述,String#include调用rb_str_index。此函数依次调用rb_memsearch,它实现了Rabin-Karpstringsearchalgorithm,根据thispost在ruby-forum.com上。 关于ruby-Ruby中用于"String#include?"的算法,我们在StackOverflow上找到一