私はスカラを初めて使いました。関数がどのように組み合わされ、戻り値の型が混乱しているのか混乱しています。以下の点を考慮してくださいforeachとmapを使ったスカラ型の返り値
val nodes = List(0,1,2)
val links = List(List(1, 2), List(1, 0), List(1,3))
タプル対「リンク」で説明したように、各ノードは、双方向リンクを有しています。私はそれの隣人に、各ノードポイントは、例えば
Map(0 -> List(1), 1 -> List(2, 0), 2 -> List(1))
しかし、これをコーディングする方法についての私の最初の考えは、私はそれが空の復帰だ理由について「リストを[任意]」の値を困惑しているマップを構築しようとしています。
nodes.foreach(z => (links.map { case List(a,b) => if(a == z) a else if (b == z) b }))
これを行う正しい方法は何ですか。
しないのはなぜ' 1:私が正しくあなたの質問を解釈する場合
そう、あなたはこのようなものが必要でしょうか? '3'は隣人じゃない?なぜそこに '3 - > List(1)'がないのですか? – jwvh
ペアの表記は、 'val links = List(1 - > 2,1 - > 0)'や '(1,2)parens 'などです。 –
@ som-snyttは言ったように、' Tuple2'そのペアには常に2つのアイテムが含まれていることがわかっているので、ペアの 'List'の代わりに。スカラーでは、Tuple2を作成するには 'Tuple2(a、b)'、 '(a、b)'、または 'a-> b'のいずれかを使用できます。 – Darkhan