2017-07-31 4 views
1

ウェブ上でいくつかのkotlinの例を見て、次のことを見て、私は正確にそれが何をしているのか理解できません。何が(x..x).map do in kotlin android

(0..6).map{ inflater.inflate(R.layout.test, container) }

私はそれを容器にR.layout.testを膨張範囲だ知っているが、「.MAP」のポイントは何ですか?

for (i in 0..6)とはちょうど異なる方法ですか?

+0

それは 'レイアウト/のtest.xmlから' View'sのリストを返します。 ' –

+0

あなたはこれを見つけたリンクを共有してください。 – Charu

+0

@Charu https://github.com/SimpleMobileTools/Simple-Calendar/blob/master/app/src/main/kotlin/com/simplemobiletools/calendar/fragments/WeekFragment .kt 82行目、inflater.inflate行を小さく変更しました。 – DarkSpikeX

答えて

0

リンクされたコードでは、これはちょっと違ったことであり、何かアクションを繰り返すのは慣れないものです。

変換の結果はつもり使用されていない場合は、1つは、代わりにmap機能の以下のアプローチを使用することができます。

// for loop 
for (n in 0..6) inflater.inflate(R.layout.test, container) 

// forEach extension 
(0..6).forEach { inflater.inflate(R.layout.test, container) } 

// repeat function 
repeat(7) { inflater.inflate(R.layout.test, container) } 
1

mapは、入力を出力に変換します。 Kotlinはそれが唯一のものであれば、引数を推論できるので、itと呼ばれます。だからあなたのコードは、これと同等です:

(0..6).map{ it => inflater.inflate(R.layout.test, container) } 

あなたはit引数を使用していないことがわかりますとにかく

ですからから膨張(0〜6)7つのビューのリストを持っていることをやった後、 R.layout.test

あなたはそれがLambda式ですdocumentation

+0

私は説明をありがとう、参照してください。 – DarkSpikeX

0

mapについての詳細を見つけることができます。 R.layout.testを膨らませて、このビューをコンテナに追加してください。あなたが参照している例はGridViewであり、このビューをコンテナに7回追加する必要があります。つまり、ここで何をしているのですか(1..6)。

関連する問題