[ruby-list:50869] Re: v2.7でのキーワード引数について

From: SHIBATA Hiroshi <hsbt@...>
Date: 2020-01-13 09:01:42 UTC
List: ruby-list #50869
柴田です。

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/

In This Thread