首页
学习
活动
专区
圈层
工具
发布

#scala

多范式的编程语言,设计初衷是要集成面向对象编程和函数式编程的各种特性

深入理解Scala样例类:值对象契约

starzy

就这一行。构造、字段、equals、hashCode、toString——全部自动生成,而且还不止这些。

700

深入理解Scala伴生类:类对象合一设计

starzy

实例成员属于对象,静态成员属于类——它们写在同一个类里,但本质上是两个世界的东西。

900

深入理解Scala偏应用函数:函数工厂设计

starzy

Java做不到。Java的方法调用必须把所有参数一次传完——你不能"先传一部分,剩下的以后再说"。

5800

深入理解Scala嵌套函数:作用域封装之道

starzy

一个类,两个private辅助方法。看起来挺正常——但你有没有想过:这两个辅助方法,只有normalize这一个地方用到。它们是类级别的方法,但其实它们应该是n...

5000

深入理解Scala匿名函数:函数式编程基石

starzy

Scala呢?Scala从第一天就有匿名函数——而且它的匿名函数比Java的Lambda更彻底、更灵活。

6510

深入理解Scala可变参数函数:从Java数组语法到优雅集合传递

starzy

Java程序员写过public static void main(String... args)吧?这个String...就是Java的可变参数。

3610

深入理解Scala默认参数函数:从方法重载到优雅API设计

starzy

Java程序员写方法重载的时候,一定有过这种痛苦:一个方法有三个参数,你想让调用方在某些情况下可以不传那几个参数。怎么办?写三个重载方法。

2110

深入理解Scala递归函数:从栈溢出到尾调用优化

starzy

Java程序员对递归的印象,大概停留在"写个阶乘"、"写个斐波那契"这种教科书示例里。实际项目里很少用——因为递归太容易栈溢出了。

4510

深入理解Scala函数定义:从方法到函数的类型跨越

starzy

Java程序员第一次写Scala函数的时候,一定会困惑一件事:为什么Scala的函数写起来这么奇怪?

6110

深入理解Scala元组:从多返回值到模式匹配的桥梁

starzy

你有没有遇到过这种情况:一个函数明明需要返回两个值——比如查询数据库,既要返回数据,又要返回总行数;既要返回成功结果,又要返回错误信息。Java里你怎么处理?要...

5910

深入理解Scala可变Map:动态构建场景下的性能与设计权衡

starzy

上一篇我们聊了不可变Map——它O(1)的查找、它的函数式操作,在大数据开发里无处不在。但有个问题:如果你要在一个循环里不断往Map里加key-value对,用...

7510

Scala Set深度解析:为什么大数据开发离不开它?

starzy

在Spark里做用户去重,你会用什么?在Flink里做实时UV统计,你会用什么?在ETL里做维度关联,你会用什么?答案都是Set。但很多人用了几年Set,对它的...

12410

Scala ListBuffer深度解析:为什么它是Scala集合体系最聪明的设计?

starzy

很多人用了几年Scala,对ListBuffer的认知还停留在"可变版List"。但如果你真的读过它的源码,会发现这是一个设计极其精妙的类——它不是简单的"可变...

10010

Scala List操作:不可变链表的函数式美学

starzy

Scala的List不是Java的List——它是不可变的链表,是函数式编程的核心数据结构。head/tail递归、模式匹配、::构造,让列表处理从Java的f...

16510

Scala可变数组操作:ArrayBuffer从入门到精通

starzy

Array是定长的,ArrayBuffer是动态的。当你需要边遍历边添加、边过滤边收集时,ArrayBuffer就是你的首选。它不是ArrayList的翻版,而...

11310

Scala Array操作:从定长数组到ArrayBuffer的完整指南

starzy

Scala的Array就是Java数组的封装,但Scala给它装上了集合操作的"超能力"。索引访问、map/filter、与List互转——让数组处理从Java...

11410

Scala String操作:从插值器到正则的完整指南

starzy

Scala的String就是java.lang.String,但Scala给它装上了强大的"扩展方法"。插值器、多行字符串、集合操作化——让字符串处理从Java...

9510

Scala循环与判断:一切皆表达式的控制流

starzy

Java的if是语句,Scala的if是表达式;Java的for是循环,Scala的for是推导式。理解Scala控制流的"表达式思维",是写出地道Scala代...

11610

Scala循环与判断:一切皆表达式的控制流

starzy

Java的if是语句,Scala的if是表达式;Java的for是循环,Scala的for是推导式。理解Scala控制流的"表达式思维",是写出地道Scala代...

11610

Scala类和对象:从构造器到样例类的完整指南

starzy

Scala的类和对象系统比Java更简洁、更强大。主构造器、伴生对象、case class、继承与多态——理解这些核心概念,是掌握Scala面向对象编程的关键。

10110
领券