草庐IT

符号运算

全部标签

ruby - Ruby 正则表达式是否有像 Perl 中的 "!~"这样的不匹配运算符?

我只想知道ruby​​正则表达式是否有不匹配运算符,就像!~一样在perl中。感觉用起来不方便(?!xxx)或(?因为你不能在xxx中使用正则表达式模式部分。 最佳答案 是的:!~工作得很好——你可能认为它不会因为it’smissingfromthedocumentationpageofRegexp.尽管如此,它还是有效的:irb(main):001:0>'x'!~/x/=>falseirb(main):002:0>'x'!~/y/=>true 关于ruby-Ruby正则表达式是否有像P

ruby - 如何理解 Ruby 中的符号

尽管阅读了“UnderstandingRubySymbols”,但在使用符号时,我仍然对内存中数据的表示感到困惑。如果一个符号,其中两个包含在不同的对象中,存在于同一内存位置,那么它们如何包含不同值?我曾期望相同的内存位置包含相同的值。这是来自链接的引述:Unlikestrings,symbolsofthesamenameareinitializedandexistinmemoryonlyonceduringasessionofruby我不明白它是如何设法区分同一内存位置中包含的值的。考虑这个例子:patient1={:ruby=>"red"}patient2={:ruby=>"pro

ruby-on-rails - 如何将 Ruby 类名转换为下划线分隔符号?

如何以编程方式将类名FooBar转换为符号:foo_bar?例如像这样的东西,但它能正确处理驼峰大小写?FooBar.to_s.downcase.to_sym 最佳答案 Rails带有一个名为underscore的方法,它允许您将CamelCased字符串转换为underscore_separated字符串。所以你可以这样做:FooBar.name.underscore.to_sym但是正如ipsum所说,您必须安装ActiveSupport才能做到这一点。如果你不想为此安装ActiveSupport,你可以自己将underscor

ruby ,!!运算符(a/k/a 双爆炸)

这个问题在这里已经有了答案:关闭12年前。PossibleDuplicate:Whatdoes!!meaninruby?你好,我是Ruby的新手,在任何地方都找不到“!!”的描述。方法。这是一个例子:defsigned_in?!!current_userend如果这是双重否定,为什么不说:defsigned_in?current_userend请帮忙。

ruby - 什么时候在 Ruby 中使用符号而不是字符串?

如果我的脚本中至少有两个相同字符串的实例,我是否应该改用符号? 最佳答案 长话短说一个简单的经验法则是每次需要内部标识符时都使用符号。对于Ruby完整答案不将它们用于动态生成的标识符的唯一原因是内存问题。这个问题很常见,因为许多编程语言没有符号,只有字符串,因此字符串也被用作代码中的标识符。您应该担心的是什么符号意味着,而不仅仅是您应该在什么时候使用符号。符号是标识符。如果您遵循这一理念,您很可能会把事情做对。符号和字符串的实现之间存在一些差异。关于符号最重要的一点是它们不可变。这意味着它们的值永远不会改变。因此,符号的实例化速度比

ruby 运算符 "=~"

这个问题在这里已经有了答案:Whatisthe"=~"operatorinRuby?(7个答案)关闭8年前。在ruby中,我看了一些运算符,但是没找到=~。=~是做什么用的,或者它是什么意思?我看到的程序有regexs=(/\d+/)a=somestringifa=~regexs我认为它是在比较somestring是否等于数字,但是还有其他用法吗?=~运算符的正确定义是什么?

ruby - "==="运算符在 Ruby 中有什么作用?

这个问题在这里已经有了答案:关闭12年前。PossibleDuplicate:===vs.==inRuby我最近看到它使用了几次,但无法弄清楚它的作用。谁能说明它是如何工作的?

ruby - 创建符号数组

有没有更简洁的方法来做这样的事情?%w[addresscitystatepostalcountry].map(&:to_sym)#=>[:address,:city,:state,:postal,:country]我本以为%s会做我想做的事,但事实并非如此。它只是将括号之间的所有内容都取出来,并从中生成一个大符号。只是一个小烦恼。 最佳答案 原始答案写于2011年9月,但是,startingfromRuby2.0,有一个更短的方法来创建一个符号数组!这个文字:%i[addresscitystatepostalcountry]将完全按

ruby - 为什么 Ruby 不支持 i++ 或 i--(递增/递减运算符)?

前/后递增/递减运算符(++和--)是非常标准的编程语言语法(至少对于过程和面向对象的语言而言).为什么Ruby不支持它们?我知道您可以使用+=和-=完成同样的事情,但是排除类似的东西似乎很奇怪,特别是因为它是如此简洁和传统。例子:i=0#=>0i+=1#=>1i#=>1i++#=>expect2,butasfarasIcantell,#=>irbignoresthesecond+andwaitsforasecondnumbertoaddtoi我知道Fixnum是不可变的,但是如果+=可以实例化一个新的Fixnum并设置它,为什么不对++?包含=字符的赋值的一致性是造成这种情况的唯一原

ruby - 为什么在 Ruby 中使用符号作为哈希键?

很多时候人们使用符号作为Ruby哈希中的键。与使用字符串相比有什么优势?例如:hash[:name]对比hash['name'] 最佳答案 长话短说:使用符号不仅可以节省比较时间,还可以节省内存,因为它们只存储一次。Ruby符号是不可变的(无法更改),这使得查找内容变得更加容易简短(大概)回答:使用符号不仅可以节省比较时间,还可以节省内存,因为它们只存储一次。Ruby中的符号基本上是“不可变字符串”..这意味着它们无法更改,并且它意味着在整个过程中多次引用相同的符号源代码,总是存储为相同的实体,例如具有相同的对象ID。另一方面,字符