视频选集
- P1001-尚硅谷-Scala核心编程-Scala概述(上)
- P3002-尚硅谷-Scala核心编程-Scala读法说明
- P4003-尚硅谷-Scala核心编程-Scala语言特点
- P5004-尚硅谷-Scala核心编程-Windows搭建Scala开发环境
- P6005-尚硅谷-Scala核心编程-Linux下搭建Scala开发环境
- P7006-尚硅谷-Scala核心编程-Scala插件安装
- P8007-尚硅谷-Scala核心编程-Scala快速入门
- P9008-尚硅谷-Scala核心编程-Idea开发Scala项目
- P10009-尚硅谷-Scala核心编程-Java模拟Scala的运行机制
- P11010-尚硅谷-Scala核心编程-字符串输出3种方式
- P12011-尚硅谷-Scala核心编程-关联Scala源码
- P13012-尚硅谷-Scala核心编程-文档注释
- P14013-尚硅谷-Scala核心编程-编写规则 注意事项和手册
- P15014-尚硅谷-Scala核心编程-Scala变量的基本使用
- P16015-尚硅谷-Scala核心编程-Scala变量的注意事项
- P17016-尚硅谷-Scala核心编程-Scala数据类型的一览图
- P18017-尚硅谷-Scala核心编程-Scala整型
- P19018-尚硅谷-Scala核心编程-Scala浮点型
- P20019-尚硅谷-Scala核心编程-Scala字符类型
- P21020-尚硅谷-Scala核心编程-Null Nothing Unit
- P22021-尚硅谷-Scala核心编程-作业评讲
- P23022-尚硅谷-Scala核心编程-温故知新
- P24023-尚硅谷-Scala核心编程-值类型的自动转换
- P25024-尚硅谷-Scala核心编程-值类型的强制转换
- P26025-尚硅谷-Scala核心编程-值类型与String相互转换
- P27026-尚硅谷-Scala核心编程-标识符的使用说明
- P28027-尚硅谷-Scala核心编程-算术运算符
- P29028-尚硅谷-Scala核心编程-关系运算符
- P30029-尚硅谷-Scala核心编程-逻辑运算符
- P31030-尚硅谷-Scala核心编程-赋值运算符
- P32031-尚硅谷-Scala核心编程-运算符特别说明
- P33032-尚硅谷-Scala核心编程-运算符优先级
- P34033-尚硅谷-Scala核心编程-从控制台输入内容
- P35034-尚硅谷-Scala核心编程-顺序控制
- P36035-尚硅谷-Scala核心编程-单分支
- P37036-尚硅谷-Scala核心编程-双分支
- P38037-尚硅谷-Scala核心编程-多分支
- P39038-尚硅谷-Scala核心编程-分支控制注意事项
- P40039-尚硅谷-Scala核心编程-嵌套分支
- P41040-尚硅谷-Scala核心编程-for循环的两种方式
- P42041-尚硅谷-Scala核心编程-for循环守卫
- P43042-尚硅谷-Scala核心编程-引入变量
- P44043-尚硅谷-Scala核心编程-嵌套循环
- P45044-尚硅谷-Scala核心编程-循环返回值
- P46045-尚硅谷-Scala核心编程-循环的注意事项和练习题
- P47046-尚硅谷-Scala核心编程-While循环
- P48047-尚硅谷-Scala核心编程-DoWhile循环
- P49048-尚硅谷-Scala核心编程-多重循环应用案例
- P50049-尚硅谷-Scala核心编程-实现Break和Continue
- P51050-尚硅谷-Scala核心编程-循环中断作业评讲
- P52051-尚硅谷-Scala核心编程-函数式编程基本介绍
- P53052-尚硅谷-Scala核心编程-函数式编程几个重要概念
- P54053-尚硅谷-Scala核心编程-函数的必要性及学习方法
- P55054-尚硅谷-Scala核心编程-函数基本介绍和快速入门
- P56055-尚硅谷-Scala核心编程-函数(方法)的调用机制
- P57056-尚硅谷-Scala核心编程-函数递归调用的机制
- P58057-尚硅谷-Scala核心编程-函数递归的课堂练习
- P59058-尚硅谷-Scala核心编程-函数使用注意事项和细节1
- P60059-尚硅谷-Scala核心编程-函数使用注意事项和细节2
- P61060-尚硅谷-Scala核心编程-函数使用注意事项和细节3
- P62061-尚硅谷-Scala核心编程-过程
- P63062-尚硅谷-Scala核心编程-惰性函数
- P64063-尚硅谷-Scala核心编程-异常处理
- P65064-尚硅谷-Scala核心编程-函数练习题
- P66065-尚硅谷-Scala核心编程-面向对象编程介绍和入门案例
- P67066-尚硅谷-Scala核心编程-如何定义类和属性的使用
- P68067-尚硅谷-Scala核心编程-属性的注意事项
- P69068-尚硅谷-Scala核心编程-对象创建和对象内存布局图
- P70069-尚硅谷-Scala核心编程-作业布置
- P71070-尚硅谷-Scala核心编程-作业评讲
- P72071-尚硅谷-Scala核心编程-温故知新
- P73072-尚硅谷-Scala核心编程-方法
- P74073-尚硅谷-Scala核心编程-类与对象的应用实例
- P75074-尚硅谷-Scala核心编程-Java构造器回顾
- P76075-尚硅谷-Scala核心编程-主构造器和辅助构造器
- P77076-尚硅谷-Scala核心编程-主构造器和辅助构造器的细节
- P78077-尚硅谷-Scala核心编程-属性高级部分
- P79078-尚硅谷-Scala核心编程-对象创建流程分析
- P80079-尚硅谷-Scala核心编程-包介绍和java包回顾
- P81080-尚硅谷-Scala核心编程-Scala包的基本使用
- P82081-尚硅谷-Scala核心编程-Scala包的特点说明
- P83082-尚硅谷-Scala核心编程-包的使用细节和注意事项1
- P84083-尚硅谷-Scala核心编程-包的使用细节和注意事项2
- P85084-尚硅谷-Scala核心编程-包对象的介绍和底层机制
- P86085-尚硅谷-Scala核心编程-包对象注意事项和细节说明
- P87086-尚硅谷-Scala核心编程-Java包的可见性
- P88087-尚硅谷-Scala核心编程-Scala包的可见性讲解
- P89088-尚硅谷-Scala核心编程-Scala包的引入和细节
- P90089-尚硅谷-Scala核心编程-使用抽象完成银行案例
- P91090-尚硅谷-Scala核心编程-封装
- P92091-尚硅谷-Scala核心编程-作业布置
- P93092-尚硅谷-Scala核心编程-作业点评
- P94093-尚硅谷-Scala核心编程-温故知新
- P95094-尚硅谷-Scala核心编程-封装注意事
- P96095-尚硅谷-Scala核心编程-Java继承的回顾
- P97096-尚硅谷-Scala核心编程-Scala的继承快速入门
- P98097-尚硅谷-Scala核心编程-Scala的继承注意事项
- P99098-尚硅谷-Scala核心编程-方法重写
- P100099-尚硅谷-Scala核心编程-类型转换和最佳实践
- P101100-尚硅谷-Scala核心编程-Java的超类构造分析
- P102101-尚硅谷-Scala核心编程-Scala的超类构造分析
- P103102-尚硅谷-Scala核心编程-Java的覆写字段回顾
- P104103-尚硅谷-Scala核心编程-Scala覆写字段快速入门
- P105104-尚硅谷-Scala核心编程-覆写字段注意事项和细节说明1
- P106105-尚硅谷-Scala核心编程-覆写字段注意事项和细节说明2
- P107106-尚硅谷-Scala核心编程-抽象类的基本介绍
- P108107-尚硅谷-Scala核心编程-抽象类使用注意事项和细节
- P109108-尚硅谷-Scala核心编程-匿名子类
- P110109-尚硅谷-Scala核心编程-类的层级关系和作业布置
- P111110-尚硅谷-Scala核心编程-小孩玩游戏问题及Java静态
- P112111-尚硅谷-Scala核心编程-伴生对象的快速入门
- P113112-尚硅谷-Scala核心编程-伴生对象使用细节和最佳实践
- P114113-尚硅谷-Scala核心编程-伴生对象和伴生类的小结
- P115114-尚硅谷-Scala核心编程-apply方法的使用
- P116115-尚硅谷-Scala核心编程-Java接口回顾
- P117116-尚硅谷-Scala核心编程-Scala接口基本介绍
- P118117-尚硅谷-Scala核心编程-特质快速入门案例
- P119118-尚硅谷-Scala核心编程-特质的再说明
- P120119-尚硅谷-Scala核心编程-作业布置
- P121120-尚硅谷-Scala核心编程-作业评讲
- P122121-尚硅谷-Scala核心编程-温故知新
- P123122-尚硅谷-Scala核心编程-动态混入特质
- P124123-尚硅谷-Scala核心编程-叠加特质
- P125124-尚硅谷-Scala核心编程-叠加特质的注意事项和细节
- P126125-尚硅谷-Scala核心编程-在特质中重写抽象方法
- P127126-尚硅谷-Scala核心编程-富接口
- P128127-尚硅谷-Scala核心编程-动态混入特质对字段的处理
- P129128-尚硅谷-Scala核心编程-特质构造的顺序
- P130129-尚硅谷-Scala核心编程-扩展类的特质
- P131130-尚硅谷-Scala核心编程-自身类型(selftype)
- P132131-尚硅谷-Scala核心编程-内部类的基本使用
- P133132-尚硅谷-Scala核心编程-内部类访问外部类属性案例
- P134133-尚硅谷-Scala核心编程-类型投影
- P135134-尚硅谷-Scala核心编程-隐式转换的必要性和入门
- P136135-尚硅谷-Scala核心编程-隐式函数使用注意事项
- P137136-尚硅谷-Scala核心编程-隐式转换丰富类库功能
- P138137-尚硅谷-Scala核心编程-隐式值详解
- P139138-尚硅谷-Scala核心编程-隐式类详解
- P140139-尚硅谷-Scala核心编程-隐式转换的时机和机制
- P141140-尚硅谷-Scala核心编程-隐式转换的使用陷阱
- P142141-尚硅谷-Scala核心编程-作业评讲
- P143142-尚硅谷-Scala核心编程-温故知新
- P144143-尚硅谷-Scala核心编程-Scala集合基本介绍
- P145144-尚硅谷-Scala核心编程-可变集合和不可变集合体系
- P146145-尚硅谷-Scala核心编程-定长数组的使用
- P147146-尚硅谷-Scala核心编程-ArrayBuffer的基本使用
- P148147-尚硅谷-Scala核心编程-Array和ArrayBuffer相互转换
- P149148-尚硅谷-Scala核心编程-多维(二维)数组的使用
- P150149-尚硅谷-Scala核心编程-ArrayBuffer转Java的List
- P151150-尚硅谷-Scala核心编程-Java的List转scala的Buffer
- P152151-尚硅谷-Scala核心编程-元组的基本介绍和创建
- P153152-尚硅谷-Scala核心编程-元组的访问和遍历
- P154153-尚硅谷-Scala核心编程-List的基本介绍和创建
- P155154-尚硅谷-Scala核心编程-List追加数据和其它使用
- P156155-尚硅谷-Scala核心编程-ListBuffer的使用
- P157156-尚硅谷-Scala核心编程-Queue基本介绍
- P158157-尚硅谷-Scala核心编程-Queue的创建和追加元素
- P159158-尚硅谷-Scala核心编程-Queue入队列和出队列
- P160159-尚硅谷-Scala核心编程-返回Queue的元素
- P161160-尚硅谷-Scala核心编程-Map的基本介绍和创建
- P162161-尚硅谷-Scala核心编程-Map的四种构建方式
- P163162-尚硅谷-Scala核心编程-Map的四种取值方式
- P164163-尚硅谷-Scala核心编程-Map的删除操作
- P165164-尚硅谷-Scala核心编程-Map的遍历
- P166165-尚硅谷-Scala核心编程-Set基本介绍和创建
- P167166-尚硅谷-Scala核心编程-Set的添加和删除
- P168167-尚硅谷-Scala核心编程-温故知新
- P169168-尚硅谷-Scala核心编程-Map映射操作的提出
- P170169-尚硅谷-Scala核心编程-高阶函数和Map映射
- P171170-尚硅谷-Scala核心编程-Map映射课堂练习
- P172171-尚硅谷-Scala核心编程-集合扁平化操作
- P173172-尚硅谷-Scala核心编程-集合过滤Filter操作
- P174173-尚硅谷-Scala核心编程-集合化简介绍和案例
- P175174-尚硅谷-Scala核心编程-集合化简的流程示意图
- P176175-尚硅谷-Scala核心编程-集合化简的课堂练习
- P177176-尚硅谷-Scala核心编程-折叠的基本介绍和使用
- P178177-尚硅谷-Scala核心编程-折叠缩写方式
- P179178-尚硅谷-Scala核心编程-扫描
- P180179-尚硅谷-Scala核心编程-集合的综合练习
- P181180-尚硅谷-Scala核心编程-拉链的介绍和使用
- P182181-尚硅谷-Scala核心编程-迭代器使用和注意事项
- P183182-尚硅谷-Scala核心编程-流
- P184183-尚硅谷-Scala核心编程-视图(View)
- P185184-尚硅谷-Scala核心编程-线程安全集合和并行计算介绍
- P186185-尚硅谷-Scala核心编程-并行集合运算的应用案例
- P187186-尚硅谷-Scala核心编程-操作符的扩展
- P188187-尚硅谷-Scala核心编程-Match基本介绍和快速入门
- P189188-尚硅谷-Scala核心编程-Match的注意事项和细节
- P190189-尚硅谷-Scala核心编程-Match中的守卫
- P191190-尚硅谷-Scala核心编程-模式中的变量
- P192191-尚硅谷-Scala核心编程-类型匹配的基本介绍和使用
- P193192-尚硅谷-Scala核心编程-类型匹配的注意事项和细节
- P194193-尚硅谷-Scala核心编程-匹配数组
- P195194-尚硅谷-Scala核心编程-匹配列表
- P196195-尚硅谷-Scala核心编程-匹配元组
- P197196-尚硅谷-Scala核心编程-温故知新
- P198197-尚硅谷-Scala核心编程-对象匹配基本介绍和快速入门
- P199198-尚硅谷-Scala核心编程-对象匹配的应用案例
- P200199-尚硅谷-Scala核心编程-变量声明中的模式使用
- P201200-尚硅谷-Scala核心编程-For表达式的模式匹配
- P202201-尚硅谷-Scala核心编程-样例类的基本介绍和使用
- P203202-尚硅谷-Scala核心编程-样例类应用实例和中置表达式
- P204203-尚硅谷-Scala核心编程-匹配嵌套结构和商品打折需求
- P205204-尚硅谷-Scala核心编程-商品打折的相关知识点和分析
- P206205-尚硅谷-Scala核心编程-商品打折的最终解决
- P207206-尚硅谷-Scala核心编程-Sealed类
- P208207-尚硅谷-Scala核心编程-偏函数的必要性
- P209208-尚硅谷-Scala核心编程-偏函数的快速入门和小结
- P210209-尚硅谷-Scala核心编程-偏函数的简写形式
- P211210-尚硅谷-Scala核心编程-作为参数的函数
- P212211-尚硅谷-Scala核心编程-匿名函数的介绍和快速入门
- P213212-尚硅谷-Scala核心编程-高阶函数的介绍和使用
- P214213-尚硅谷-Scala核心编程-参数类型推断
- P215214-尚硅谷-Scala核心编程-闭包
- P216215-尚硅谷-Scala核心编程-函数柯里化
- P217216-尚硅谷-Scala核心编程-控制抽象介绍和快速入门
- P218217-尚硅谷-Scala核心编程-控制抽象的最佳实践
- P219218-尚硅谷-Scala核心编程-使用递归的思想去思考和编程
- P220219-尚硅谷-Scala核心编程-传统方式和递归方式速度PK
- P221220-尚硅谷-Scala核心编程-使用递归求出最大值
- P222221-尚硅谷-Scala核心编程-递归翻转字符串和求阶乘
- P223222-尚硅谷-Scala核心编程-使用递归的注意事项和陷阱
- P224223-尚硅谷-Scala核心编程-作业说明和温故知新
- P225224-尚硅谷-Scala核心编程-项目开发流程
- P226225-尚硅谷-Scala核心编程-项目需求和程序框架图
- P227226-尚硅谷-Scala核心编程-CRM项目-实现Customer类
- P228227-尚硅谷-Scala核心编程-CRM项目-实现主菜单显示和退出
- P229228-尚硅谷-Scala核心编程-CRM项目-实现了显示客户列表
- P230229-尚硅谷-Scala核心编程-CRM项目-添加客户
- P231230-尚硅谷-Scala核心编程-CRM项目-删除客户
- P232231-尚硅谷-Scala核心编程-CRM项目-完善功能1
- P233232-尚硅谷-Scala核心编程-CRM项目-完善功能2
- P234233-尚硅谷-Scala核心编程-AKKA的基本介绍
- P235234-尚硅谷-Scala核心编程-AKKA的Actor模式介绍
- P236235-尚硅谷-Scala核心编程-Actor模型工作机制和消息机制
- P237236-尚硅谷-Scala核心编程-Actor模型快速入门案例
- P238237-尚硅谷-Scala核心编程-Actor之间的相互通信
- P239238-尚硅谷-Scala核心编程-Akka网络编程基础
- P240239-尚硅谷-Scala核心编程-温故知新
- P241240-尚硅谷-Scala核心编程-小黄鸡程序需求分析和框架图
- P242241-尚硅谷-Scala核心编程-小黄鸡服务器端完成监听
- P243242-尚硅谷-Scala核心编程-小黄鸡的客户端-创建客户端的Actor
- P244243-尚硅谷-Scala核心编程-小黄鸡的客户端和服务器端通讯
- P245244-尚硅谷-Scala核心编程-Spark Master和Worker项目需求
- P246245-尚硅谷-Scala核心编程-Spark worker注册功能完成
- P247246-尚硅谷-Scala核心编程-Spark worker定时更新心跳
- P248247-尚硅谷-Scala核心编程-Master检测心跳并删除超时的Worker
- P249248-尚硅谷-Scala核心编程-指定Master和Worker的启动参数
- P250249-尚硅谷-Scala核心编程-作业评讲
- P251250-尚硅谷-Scala核心编程-经典的Wordcount的讲解
- P252251-尚硅谷-Scala核心编程-设计模式的引入
- P253252-尚硅谷-Scala核心编程-设计模式的分类入
- P254253-尚硅谷-Scala核心编程-简单工厂模式
- P255254-尚硅谷-Scala核心编程-工厂方法模式
- P256255-尚硅谷-Scala核心编程-抽象工厂模式
- P257256-尚硅谷-Scala核心编程-单例模式
- P258257-尚硅谷-Scala核心编程-将Akka项目打包分布式部署
- P259258-尚硅谷-Scala核心编程-温故知新
- P260259-尚硅谷-Scala核心编程-咖啡店的项目引出装饰者模式
- P261260-尚硅谷-Scala核心编程-装饰者模式介绍和咖啡店应用实例
- P262261-尚硅谷-Scala核心编程-观察者模式的引出和问题分析
- P263262-尚硅谷-Scala核心编程-观察者模式来解决气象局项目
- P264263-尚硅谷-Scala核心编程-Java内置观察者模式
- P265264-尚硅谷-Scala核心编程-代理模式介绍和糖果机需求
- P266265-尚硅谷-Scala核心编程-对本地机器进行监控的解决方案
- P267266-尚硅谷-Scala核心编程-RMI的介绍和应用实例
- P268267-尚硅谷-Scala核心编程-对远程机进行监控实现-RMI实现
- P269268-尚硅谷-Scala核心编程-动态代理的原理和保护代理的概念
- P270269-尚硅谷-Scala核心编程-动态代理应用实例-婚恋网
- P271270-尚硅谷-Scala核心编程-动态代理的几种变体
- P272271-尚硅谷-Scala核心编程-Scala泛型介绍和应用实例1
- P273272-尚硅谷-Scala核心编程-Scala泛型介绍和应用实例2
- P274273-尚硅谷-Scala核心编程-Scala上界介绍和应用实例1
- P275274-尚硅谷-Scala核心编程-Scala上界介绍和应用实例2
- P276275-尚硅谷-Scala核心编程-Scala下界介绍和应用实例
- P277276-尚硅谷-Scala核心编程-视图界定的介绍应用实例1
- P278277-尚硅谷-Scala核心编程-视图界定的介绍应用实例2
- P279278-尚硅谷-Scala核心编程-视图界定的介绍应用实例3
- P280279-尚硅谷-Scala核心编程-上下文界定介绍和应用实例
- P281280-尚硅谷-Scala核心编程-协变逆变和不变
scalaC 编译器
Kotlin的实用主义Kotlin常常被认为是一门非常近似Scala的语言。的确,它们的诞生都源于Java语言的改良,同时都在面向对象和函数式之间建立起了多范式的桥梁。不可否认的是,Kotlin确实从Scala身上借鉴了许多,就连它的创作团队也表示过:“如果你Scala用的很开心,那么你并不需要Kotlin。” 然而,Kotlin与Scala的设计哲学又十分不同。Kotlin并没有像Scala那样热衷于编程语言本身的研究和探索。相反,它在解放Java的同时,又在语言特性的选择上表现得相当克制。 我们说过,Scala旨在成为一门程序员梦想中的语言,它包含了所有你想拥有的语言特性。而Kotlin更加立足现实,它现阶段仍没有宏,也拒绝了很多所谓的高级函数式语言特性。但它在Java 的基础上发展了很多改善生产力的语言特性,如数据类、when表达式(一定程度上的模式匹配)、扩展函数(和属性)、可空类型等等,而且它似乎偏好语法糖,比如Smart Casts,因为这可以让编程人员在工程中的开发变得更加容易。 可以看出,Kotlin的自我定位非常清晰—它的目标就是在应用领域成为一门实用且高效的编程语言。如果说Scala的设计理念是more than Java(不仅仅是Java),那么Kotlin才是一门真正意义上的better Java(更好的Java)。 更好的Java如果你用Kotlin开发过业务,很快就会意识到它相较于Java的语法,显得更加简洁、高效,比如Kotlin做了这些改良:
但可能你会问,以上Kotlin的特性,Scala也有,能否可以说前者只是后者的一个子集。这种表述其实是不恰当的。其实,Kotlin在致力于成为更好的Java的道路上,不仅仅是依靠这些新增的语言特性,它在兼容Java方面的设计,做了大量的工作,比Scala走的更远。 作者:ScalaCool 链接:https://juejin.im/post/5cf091e9f265da1bbb03c0c7 来源:掘金 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 |
|
伴生对象
伴生类
包装,静态单例
- 动静分离;静态方法可以看作面向过程,而非面向对象;
- 代码更简洁 ... (那确实...)
scaladoc