[ruby-list:50870] Re: v2.7でのキーワード引数について
From:
大田黒 俊夫 <toshio.otaguro@...>
Date:
2020-01-13 10:02:51 UTC
List:
ruby-list #50870
柴田様, アップデートを確認しました.ありがとうございました. 2020年1月13日(月) 18:02 SHIBATA Hiroshi <hsbt@ruby-lang.org>: > 柴田です。 > > snap ruby のパッケージングを失敗していたものを修正し、snapcraft へ release しなおしました。 > > >ubuntu@primary:~$ ruby -v > >ruby 2.7.0p0 (2019-12-25 revision 647ee6f091) [x86_64-linux] > > 現在は上記のバージョンになります。 > > On Sun, Dec 29, 2019 at 4:12 PM SHIBATA Hiroshi <hsbt@ruby-lang.org> > wrote: > > > > 大田黒さん > > > > 柴田です。snap のパッケージメンテナです。 > > > > ご報告ありがとうございます。snap のバージョン表記が dev なのは意図した表記ではないので調べます。 > > > > On Sun, Dec 29, 2019 at 15:00 大田黒 俊夫 <toshio.otaguro@gmail.com> wrote: > >> > >> Ubuntu の snap でインストールした Ruby を使っていますが,本日自動的に v2.7 > にアップデートされました.バージョン表記では ruby 2.7.0dev (2019-12-25 master e1e1d92277) > [x86_64-linux] と表示されて,微妙にリリース版ではないように見えるのが気になります. > >> > >> > さて,キーワード引数に関する警告が出るようになりました.リリースノートにいろいろ書いてあるのを読んでもよく理解できなかったので,ここで質問します. > >> > >> Sample1 = Struct.new(:s1, :s2, :s3) do > >> def initialize(a1, a2) > >> super(a1, a2, a1 + a2) > >> end > >> end > >> p Sample1.new(1, 2) > >> > >> Sample2 = Struct.new(:s1, :s2, :s3) do > >> def initialize(a1:, a2:) > >> super(a1, a2, a1 + a2) > >> end > >> end > >> p Sample2.new(a1:1, a2:2) > >> > >> 上記のスクリプトを v2.7 で実行すると, > >> > >> #<struct Sample1 s1=1, s2=2, s3=3> > >> kwarg_01.rb:13: warning: Using the last argument as keyword parameters > is deprecated; maybe ** should be added to the call > >> kwarg_01.rb:9: warning: The called method `initialize' is defined here > >> #<struct Sample2 s1=1, s2=2, s3=3> > >> > >> という警告が出て,Sample2 のキーワード引数が非推奨と言われてしまいます.構造体には正しく代入されているようです. > >> > 私はキーワード引数を多用していますが,最後の引数に使わないほうが良い理由は何でしょうか?最も簡単な回避策はどのようなものでしょうか?どなたかご教示いただければ幸いです. > >> > >> 俊(とし) > > > > -- > > SHIBATA Hiroshi hsbt@ruby-lang.org > > https://www.hsbt.org/ > > > > -- > SHIBATA Hiroshi hsbt@ruby-lang.org > https://www.hsbt.org/ > -- 俊(とし) * 望湖庵日記 http://griffin.cocolog-nifty.com/lakesidedairy/