-
Notifications
You must be signed in to change notification settings - Fork 35
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: 関数の省略された引数がexistsでfalseを返すように #636
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Rejectしたいです
では反対1名として扱いますが、理由を伺ってもいいですか? |
これを前提に書いたコードはnextになった時に破壊的になる? |
はい、まあそれはそうですね |
今から壊れる要素を増やすのはあまり良くないと思うのでやはり個数チェックで弾く方が安全かもしれません |
個数チェックの追加となると破壊的になりそうな気がしますが今からmasterに追加します? |
nextまでの誤魔化しなら今は |
これもnextになった時に破壊的要素になるはなりますが、基本的に?を入れるだけで修正できるという点でexistsでどうこうよりはベターですね |
「ユーザー定義関数の引数省略は正式実装ではないので非推奨」という旨の警告が必要ですね |
existsでfalseを返すという挙動が直感的ではないというのが反対の理由です。 |
逆に私がそのアプローチにしようとした理由は、「existsでfalseを返す値」をJavaScriptでいうundefinedの代わりにできたら利便性と安全性を両立できるかもしれない、という構想があったからです。 |
What
関数宣言時に指定した引数が実行時に与えられなかった時、これまでは中身が定義外の値が代入されていましたが、それをそもそも変数として追加されないように変更します。
破壊性が低いと考えられるためmasterに入れます。
Why
#635
なお #475 がマージされた場合、省略可能でない引数が省略されるとエラーになるようになるためこのPRは無効化されます。
nextが来るまでの誤魔化しとしての利用を想定しています。
Additional info (optional)