react解体後に配列を加える_プロジェクトReactスタック–メタグループの解体
react解体後に配列を加える
メタグループは、固定されたアイテムのセットを含む簡単なデータ構造で、各アイテムには異なるデータ型があります.
Project Reactorは、約8種類の異なるタイプのメタグループを格納できるデータ構造を提供します.
メタグループは非常に有用ですが、メタグループを使用する問題の1つは、それらの各位置を使用して構造分解を行わない場合、その内容を明らかにすることが難しいことです.
に質問
文字列と整数を圧縮する単純な演算子を考慮します.
出力は2つの要素を含むメタグループです.
今、私の問題はこれです.任意の操作を行う前に、メタグループを構成要素に参照解除するのが好きです.
前のメタグループで言えばcount(メタグループの2番目の要素)と同じくらい多くの文字列(メタグループの1番目の要素)を生成したいのですが、表現は次のようになります.
ここでの質問は、「tup.gett 1()」と「tup.gett 2()」を引用した場合、メタグループの意味はまだ分かりません.もっと冗長ですが、私はこのようにするのが好きです.
解
構造を有意義な名前の明示的な変数に分解する方法は有効ですが、これは少し冗長です.Project Reactorに付属のユーティリティ機能のセットを使用すると、より良いメソッドメタグループが提供されます.
TupleUtilsを使用する前の解体は、次のように見える例で説明したほうがいいと思います.
これは明示的な解構よりも簡潔に見える.少し頭がいいですが、いくつかの習慣が必要です.
flatMapManyの署名は-
TupleUtilsは、上記の必要な関数を別の関数で返す別の間接関数を提供します.
Kotlinを使用している場合は、より簡単な方法があります.これは、「破棄宣言」の概念に基づいています.Project Reactorは、追加のgradle依存項目を使用して、Kotlinヘルプユーティリティのセットを提供します.
このような依存関係があると,等価なKotlinコードは以下のようになる.
メタグループを直接変数に分解する方法について説明します.次のように見えます.
結論
メタグループをより意味のある変数に分解してコードの可読性を高めることが重要であり、TupleUtilsおよびKotlin拡張が提供する有用な機能は、コードの簡潔性と可読性を維持するのに役立つ.
Javaの例はここで、Kotlinの例はここで
翻訳:https://www.javacodegeeks.com/2020/01/project-reactor-de-structuring-a-tuple.html
react解体後に配列を加える
メタグループは、固定されたアイテムのセットを含む簡単なデータ構造で、各アイテムには異なるデータ型があります.
Project Reactorは、約8種類の異なるタイプのメタグループを格納できるデータ構造を提供します.
メタグループは非常に有用ですが、メタグループを使用する問題の1つは、それらの各位置を使用して構造分解を行わない場合、その内容を明らかにすることが難しいことです.
に質問
文字列と整数を圧縮する単純な演算子を考慮します.
Mono> tup = Mono.zip(Mono.just( "a" ), Mono.just( 2 ))
出力は2つの要素を含むメタグループです.
今、私の問題はこれです.任意の操作を行う前に、メタグループを構成要素に参照解除するのが好きです.
前のメタグループで言えばcount(メタグループの2番目の要素)と同じくらい多くの文字列(メタグループの1番目の要素)を生成したいのですが、表現は次のようになります.
Mono.zip(Mono.just( "a" ), Mono.just( 2 ))
.flatMapMany(tup -> {
return Flux.range( 1 , tup.getT2()).map(i -> tup.getT1() + i);
})
ここでの質問は、「tup.gett 1()」と「tup.gett 2()」を引用した場合、メタグループの意味はまだ分かりません.もっと冗長ですが、私はこのようにするのが好きです.
Mono.zip(Mono.just( "a" ), Mono.just( 2 ))
.flatMapMany(tup -> {
String s = tup.getT1();
int count = tup.getT2();
return Flux.range( 1 , count).map(i -> s + i);
});
解
構造を有意義な名前の明示的な変数に分解する方法は有効ですが、これは少し冗長です.Project Reactorに付属のユーティリティ機能のセットを使用すると、より良いメソッドメタグループが提供されます.
TupleUtilsを使用する前の解体は、次のように見える例で説明したほうがいいと思います.
Mono.zip(Mono.just( "a" ), Mono.just( 2 ))
.flatMapMany(TupleUtils.function((s, count) ->
Flux.range( 1 , count).map(i -> s + i)))
これは明示的な解構よりも簡潔に見える.少し頭がいいですが、いくつかの習慣が必要です.
flatMapManyの署名は-
public final Flux flatMapMany(Function super T,? extends Publisher extends R>> mapper)
TupleUtilsは、上記の必要な関数を別の関数で返す別の間接関数を提供します.
public static Function, R> function(BiFunction function) {
return tuple -> function.apply(tuple.getT1(), tuple.getT2()); }
Kotlinを使用している場合は、より簡単な方法があります.これは、「破棄宣言」の概念に基づいています.Project Reactorは、追加のgradle依存項目を使用して、Kotlinヘルプユーティリティのセットを提供します.
implementation( "io.projectreactor.kotlin:reactor-kotlin-extensions" )
このような依存関係があると,等価なKotlinコードは以下のようになる.
Mono.zip(Mono.just( "a" ), Mono.just( 2 ))
.flatMapMany { (s: String, count: Int) ->
Flux.range( 1 , count).map { i: Int -> s + i } Flux.range( , count).map { i: Int -> s + i }
}
メタグループを直接変数に分解する方法について説明します.次のように見えます.
val (s: String, count: Int) = tup
結論
メタグループをより意味のある変数に分解してコードの可読性を高めることが重要であり、TupleUtilsおよびKotlin拡張が提供する有用な機能は、コードの簡潔性と可読性を維持するのに役立つ.
Javaの例はここで、Kotlinの例はここで
翻訳:https://www.javacodegeeks.com/2020/01/project-reactor-de-structuring-a-tuple.html
react解体後に配列を加える