集合操作的实战例子,Scala 写的,结合了foldLeft和ArrayBuffer,在做字符统计、数据结构转换这些事儿上还挺方便的。你直接看代码就能懂,逻辑不复杂,尤其适合刚接触函数式编程的同学。
foldLeft的用法是个重点,嗯,拿sentence
里的一串重复字符做练习,再好不过了。一行行撸下来,手感会比较快建立。像下面这样:
val sentence = "AAAABBBBBCCCCCDDDD"
val arrayBuffer = new ArrayBuffer[Char]()
sentence.foldLeft(arrayBuffer)((buf, ch) => { buf += ch })
顺手提几个相关教程,都是围绕SoC FPGA和Scala展开的,像是匹配嵌套结构 Scala 实现教程这种就还挺实用,结合了实际项目结构设计,学完直接上手。
如果你刚接触foldLeft
还不太熟,推荐你把这段代码多试几次,换几个类型、换点场景,手熟之后就能理解它的妙处。