From: "matz (Yukihiro Matsumoto)" Date: 2013-08-07T00:01:27+09:00 Subject: [ruby-dev:47024] [ruby-trunk - Bug #8739][Closed] Range#last と#last(n)で挙動の統一がされていない Issue #8739 has been updated by matz (Yukihiro Matsumoto). Status changed from Rejected to Closed むむ、リビジョン 42400で最後の要素を返す(結果として挙動を揃える非互換な方向の)変更が行われてますね。 これを機会に改めて考えると、終端は「end」メソッドを使うようにして、「last」の挙動は他のEnumerableと揃えることにしましょう。 非互換ですが、なんとかなる、でしょう、多分。 標準添付ライブラリにあった非互換問題は、リビジョン 42403、42404、42407で修正されています。 ちょっと押し切られた感じですが、まあ、長い目で見ればこれで良かったんでしょう、きっと。 Matz. ---------------------------------------- Bug #8739: Range#last と#last(n)で挙動の統一がされていない https://bugs.ruby-lang.org/issues/8739#change-40938 Author: to_ueda (Tomoya Ueda) Status: Closed Priority: Normal Assignee: matz (Yukihiro Matsumoto) Category: Target version: ruby -v: ruby 2.1.0dev (2013-08-05) [x86_64-linux] Backport: 1.9.3: UNKNOWN, 2.0.0: UNKNOWN Range#lastは終端を返しますが、#last(n)は最後の要素を返します。 引数の有無で挙動が異なるのは意図したものでしょうか? 意図したものであれば、返す値を終端か要素どちらかに挙動を統一出来ないでしょうか。 #終端が返る (1...5).last => 5 #最後の要素が返る (1...5).last(1) => [4] -- http://bugs.ruby-lang.org/ _______________________________________________ ruby-dev mailing list ruby-dev@ruby-lang.org http://lists.ruby-lang.org/cgi-bin/mailman/listinfo/ruby-dev