[コトリン]これかそれか?with演算子を合理的に使用する

ここに写真の説明を挿入

で使用してコードを最適化する


在这里插入代码片一般的なUI構成ロジックは次のとおりです。

applicationWindow.title = "Just an example"
applicationWindow.position = FramePosition.AUTO
applicationWindow.content = createContent()
applicationWindow.show()

applicationWindow繰り返し呼び出す必要があります。現時点ではwith、コードをより簡潔で読みやすくするために最適化できます。

with(applicationWindow) {
    
     // this: ApplicationWindow
    title = "Just an example"
    position = FramePosition.AUTO
    content = createContent()
    show()
}

with(..){...}本質的に、それは受信機による拡張機能のカプセル化です

fun <T, R> with(receiver: T, block: T.() -> R): R =
    receiver.block()

それはですのでwithとても素晴らしい、なぜ多くのそれを使用しませんか?

Kotlinのソースコードには、フィルターなどのレシーバーを備えた拡張機能のアプリケーションが満載です。

fun <T> Iterable<T>.filter(predicate: (T) -> Boolean): List<T>

それを使用するとき:

persons.filter {
    
     it.firstName == name }

ここitpersons開発者に良いリマインダーとなる属性firstNamename、ではありません

それを次のように定義するとpredicate: T.() -> Boolean

persons.filter {
    
     firstName == name }

読みやすさはit.firstNameとても良いです。

バランスが重要です


私たちが達成しようとしているコードの重要な品質は、簡潔さではなく、
読みやすさです。

コードが長すぎると、不必要な繰り返しが発生しやすくなります。コードが単純すぎると、コンテキストが多くなり、理解のコストが高くなります。いわゆる優れたコードには、読みやすさと簡潔さのトレードオフが必要です。

Kotlinを合理的に使用する


Kotlinは柔軟な構文機能を提供し、Javaよりも簡潔なコードを記述できます。ただし、「過修正」を回避し、読みやすさに影響するコードの簡潔さを盲目的に追求することにも注意を払う必要があります。さらに、withたとえばapply他のスコープ関数に加えalsoて、適切なシナリオもあります。それらの意味it明確にthisし、最も適切なシナリオに適用して、美しいコードを記述します。

おすすめ

転載: blog.csdn.net/vitaviva/article/details/109144694