Ruby2.5新特征有哪些
这篇文章主要讲解了“Ruby 2.5新特征有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Ruby 2.5新特征有哪些”吧!
西市网站制作公司哪家好,找创新互联!从网页设计、网站建设、微信开发、APP开发、自适应网站建设等网站项目制作,到程序开发,运营维护。创新互联于2013年成立到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联。
Rescue do/end块
如果您需要捕获一个块中的异常, 唯一的方法是将其放在begin/end块中。 现在,您可以捕获所有do/end块内的异常。
(1..5).each do |n| do_something(n) rescue SomeError => e puts e next end
已删除lookup
在以前的版本中, 如果Ruby在当前范围内找不到常量, 它会回退到顶级常量, 并发出警告。 在2.5中已更改, 现在这将导致异常。
class Foo; end class Bar; end # Ruby 2.4 Foo::Bar # warning: toplevel constant Bar referenced by Foo::Bar #=> Bar # Ruby 2.5 Foo::Bar # NameError
回溯顺序相反
当打印到控制台时, Ruby将以相反的顺序显示回溯。 您还将以粗体和下划线看到错误消息。 这是一项实验性函数, 并且打印到日志时顺序不会更改。
在进行Rails项目时, 通常需要向后滚动很长一段距离 在回溯中找到那条线 该行显示发生异常的行。 通过反转回溯, 您在导致异常的行上获得上下文 无需向后滚动。
Kernel#yield_self
该方法将对象传递给块 并返回该块返回的值。
isbn = "0-306-40615-2" isbn.gsub('-', '') .yield_self { |isbn| URI("#{API_URL}?q=isbn:#{isbn}") } .yield_self { |uri| Net:HTTP.get(uri) } .yield_self { |json_response| JSON.parse(json_response) } .yield_self { |response| response.dig('items', 'volumeInfo') }
Ruby社区有很多人 对Elixir感兴趣的人 因此这可能最终成为一个流行的函数。
字符串方法
String#-@
:对未冻结的字符串进行重复数据删除。
s = - 'foo' #=> 'foo' s.frozen? #=> true
delete_prefix
和 delete_suffix
(以及bang的!版本)
'Mr. Smith'.delete_prefix('Mr. ') #=> 'Smith' 'Wellington St.'.delete_suffix(' St.') #=> 'Wellington'
grapheme_clusters
s = "a\u0300" #=> "à" s.grapheme_clusters #=> ["à"] s.codepoints #=> [97, 768]
数组方法
添加了#append
和#prepend
方法, 分别是#push
和#unshift
的别名。 这些别名已通过ActiveSupport在Rails中引入, 但是很高兴看到它们被引入Ruby。
list = ['b', 'c'] #=> ['b', 'c'] list.prepend('a') #=> ['a', 'b', 'c'] list.append('d') #=> ['a', 'b', 'c', 'd'] list #=> ['a', 'b', 'c', 'd']
哈希方法
添加了#slice
和#transform_keys
, 最初也来自ActiveSupport。
h = { a: 1, b: 2, c: 3, d: 4 } h.slice(:a, :b) #=> { a: 1, b: 2 } h.transform_keys(&:to_s) #=> {"a"=>1, "b"=>2, "c"=>3, "d"=>4}
Goodbye, ubygems.rb
!
这项更改将对您使用Ruby的方式产生零影响, 但是我很好奇为什么我们在stdlib中有一个 ubygems.rb
文件, 所以我想提一下,因为它已被删除。
Ruby有一个-r
标志,可让您需要一个库, 例如 ruby -rmath
到 require 'math'
。 rubygems文件的名称为 ubygems.rb
这样该标志可以用作 -rubygems
,而不是-rrubygems
。 从Ruby 1.9开始就不需要此文件, 并且现在已从stdlib中删除。
感谢各位的阅读,以上就是“Ruby 2.5新特征有哪些”的内容了,经过本文的学习后,相信大家对Ruby 2.5新特征有哪些这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是创新互联,小编将为大家推送更多相关知识点的文章,欢迎关注!
分享标题:Ruby2.5新特征有哪些
路径分享:http://ybzwz.com/article/jddcgg.html