メインコンテンツにスキップ

avoid_returning_this

安定版

メソッドから fluent interface を有効にするためだけに this を返すことを避けてください。

詳細

#

『Effective Dart』より Effective Dart

避けるべきこと fluent interface を有効にするためだけにメソッドから this を返すこと。

メソッドからthisを返すことは冗長です。Dartには、メソッドチェインを普遍的に可能にするカスケード演算子があります。

thisを返すことが許可されるのは

  • 演算子
  • 現在のクラスとは異なる戻り値の型を持つメソッド
  • 親クラス/ミックスインまたはインターフェイスで定義されたメソッド
  • 拡張機能で定義されたメソッド

悪い例

dart
var buffer = StringBuffer()
  .write('one')
  .write('two')
  .write('three');

良い例

dart
var buffer = StringBuffer()
  ..write('one')
  ..write('two')
  ..write('three');

有効にする

#

avoid_returning_thisルールを有効にするには、analysis_options.yamlファイルでlinter > rulesの下にavoid_returning_thisを追加します。

analysis_options.yaml
yaml
linter:
  rules:
    - avoid_returning_this

代わりにYAMLマップ構文を使用してリンタールールを構成している場合は、linter > rulesの下にavoid_returning_this: trueを追加します。

analysis_options.yaml
yaml
linter:
  rules:
    avoid_returning_this: true