https://dart.dev/null-safety/understanding-null-safety#smarter-null-aware-methods
Dartのnull-aware演算子のメソッドチェーンについての説明なのですが、
その中の上記のセクションで何度かreceiverという単語が出てくるのですが、
receiverとはどういう定義なのでしょうか?
// Using null safety: String? notAString = null; print(notAString?.length.isEven);
Even though this program uses ?., it still throws an exception at runtime.
The problem is that the receiver of the .isEven expression is the result of the entire notAString?.length expression to its left.
That expression evaluates to null, so we get a null reference error trying to call .isEven.
上記のプログラムは?.を使っているが、実行時エラーが発生する。
.isEvenのレシーバー(receiver)は、(.isEvenの左側の)notAString?.length全体の結果であるが、それが問題だ。その式(notAString?.length)はnullと評価されるので、.isEvenを呼び出そうとするとnull reference errorが発生する。
パッと思いつくのは、変数への代入が「変数が値を受け取る」ということで、
上記のコードでいうとnullを受け取るnotAStringがレシーバーなのかな、ということ
です。
その理解で意味が通る箇所もあるのですが、例えば上記の説明はそれでは意味がよくわかりません。
receiverとは何なのでしょうか。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/02/17 03:13
2021/02/17 03:20
2021/02/17 03:41