文件netlog是个链接表,大概样子是:
12:34:56 1.1.1.1:2345 > 2.2.2.2:6789 UDP
12:34:57 1.1.1.1:2345 > 2.2.2.2:6789 UDP
12:34:58 1.1.1.1:2345 > 2.2.2.2:6789 UDP
...
r是正则表达式,t是找到的ip:
1.1.1.1:2345 > 2.2.2.2:6789
1.1.1.1:2345 > 2.2.2.2:6789
1.1.1.1:2345 > 2.2.2.2:6789
...
a是最后的结果,本来期待的是:
(("1.1.1.1:2345", "IN"), ("2.2.2.2:6789", "OUT"))
(("1.1.1.1:2345", "IN"), ("2.2.2.2:6789", "OUT"))
(("1.1.1.1:2345", "IN"), ("2.2.2.2:6789", "OUT"))
...
但是总是报错。
Note: Tuples cannot be directly destructured in method or function parameters.
Either create a single parameter accepting the Tuple1,
or consider a pattern matching anonymous function: `{ case (param1, param1) => ... }
l.split(" > ") => ((_.head, "IN"), (_.last, "OUT")))
^
源代码如下:
val fs = Source.formFile("netlog.txt") //读取文件
val r = """A regular expression here""".r //正则表达式
val t = fs.flatMap(l => r.findAllIn(l)) //分析文件
val a = t.map(l => l.split(" > ") => ((_.head, "IN"), (_.last, "OUT")))
Hi,报的错已经告诉你不能直接写tuple了啊
应该要用模式匹配啊
不知道你搞明白没,你可以把完整的代码贴出来,我给你纠正