データクラス内の関数宣言Kotiln

Sndhy3478:

Kotlinでは、私は関数を記述したかったが、私は「とそれを書くための新しい方法を参照val使用してプロパティを」get()以下の2つの違いは何ですか。

 1)   fun sample(): String {
             return "text"
           }

   2)  val sample: String
            get() = "text"
ryfterek:

コメントで述べたように、2つのスニペットの間には大きな違いはありませんがあります。私はいくつかのマイナーな違いであなたを指すことができます:

  • スニペットスニペットは、#2が宣言されたプロパティになり、一方、#1は、宣言された関数として認識されるであろう。これは、違いは、リフレクションベースのロジックが適用されるべきであるになるかもしれません。
  • スニペット#2には、引数を受け入れることができませんでしたと宣言とは異なるタイプの応答を返すことができませんでしたvalこれは、の性質によるものですget()抽象化。スニペット#1は、簡単に入力引数を受け入れるように拡張することができます。
  • スニペット#2は、バッキングフィールド不満IDEは、プロパティのに影響を与えない性質のために生成されている場合がありますget()
  • 一般的に言って、スニペット#2は、おそらくに減少させなければならない可能性がありval sample: String = "text"get()宣言は冗長です。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=318740&siteId=1