From: mame@... Date: 2018-12-26T08:24:57+00:00 Subject: [ruby-core:90728] [Ruby trunk Feature#6670] str.chars.last should be possible Issue #6670 has been updated by mame (Yusuke Endoh). Assignee changed from matz (Yukihiro Matsumoto) to mame (Yusuke Endoh) Sorry for long absent. We discussed this ticket at DevelopersMeeting20180419Japan, and matz decided to withdraw the deprecation of "String#bytes with block" and friends. I'll remove the deprecation warnings soon. ---------------------------------------- Feature #6670: str.chars.last should be possible https://bugs.ruby-lang.org/issues/6670#change-75907 * Author: yhara (Yutaka HARA) * Status: Assigned * Priority: Normal * Assignee: mame (Yusuke Endoh) * Target version: Next Major ---------------------------------------- =begin Since str.chars returns an Enumerator, we need explicit to_a for some operations: str.chars.to_a.last str.chars.to_a[1,3] But often I forget that and write: str.chars.last str.chars[1,3] Besides that, I feel it is hard to explain why to_a is needed here when I'm writing artilcles for Ruby beginners. Simplest way to achieve this is to make String#chars (also #lines, #bytes and #codepoints) return an Array. Since arrays have most of the methods defined in Enumerator, this will not be a big change. For programs like str.chars.next, you can use each_char instead. =end ---Files-------------------------------- 6670.pdf (39.4 KB) string_bytes_to_array.patch (27.4 KB) 0001-Deprecate-lines-bytes-chars-codepoints-of-IO-likes.patch (21.9 KB) -- https://bugs.ruby-lang.org/ Unsubscribe: