微信扫码登录

其他登录方式

绑定手机号

注册

我同意用户协议

忘记密码

用户协议

绑定手机号

近期有不法分子打着爱盈利的旗号,制作“爱盈利”名称的App,并伪造爱盈利证件,骗取用户信任,以抖音点赞赚钱或其他方式赚钱为名义,过程中以升级会员获得高佣金为名让用户充值。
爱盈利公司郑重声明:我司没有研发或运营过任何名为“爱盈利”的APP,我司做任务赚钱类产品从没有让任何普通用户充值升级会员。我公司产品均在本网站可查询,请将网站拉至底部,点击“关于我们”可查看爱盈利相关产品与服务。
温馨提示:当遇到此类问题请拨打官方电话或添加官方微信,以免财产损失。爱盈利官网地址:www.aiyingli.com。
  • 推广与合作
X

Scala入门笔记

来源: 2373
爱盈利(aiyingli.com)移动互联网最具影响力的盈利指导网站。定位于服务移动互联网创业者,移动盈利指导。我们的目标是让盈利目标清晰可见!降低门槛,让缺乏经验、资金有限的个人和团队获得经验和机会,提高热情,激发产品。

Scala入门笔记

作者 :Andrew_liu

Scala简介

  1. Scala 是一门多范式的编程语言, 由Martin Odersky 于2001年基于Funnel的工作开始设计Scala并于2004年正式发布
  2. Scala是一种纯面向对象的语言,每个值都是对象
  3. Scala是一门多范式编程语言, 支持命令交互式, 函数式, 面向对象
  4. 编译型高性能语言(静态)
  5. 与Java无缝兼容, 可以使用任何Java库

代码风格

  1. 函数和变量以小驼峰命名
  2. 类和特质以大驼峰命名
  3. 常量使用全大写命名
  4. 一般使用两格缩进
  5. Scala大部分情况可以忽略语句末尾的分号

Scala变量

Scala中尽量避免使用变量, 函数式编程的一个重要特性是不可变性(不可变变量没有副作用)

Scala是静态类型语言, 但是不需要显式的指明变量类型, Scala采用类型推断(Type Inference)。

Scala入门笔记

Scala基本类型和操作

String和值类型Byte, Short, Int, Long, Float, Double, Char, Boolean

  1. Scala的操作符不是特殊的语言语法, 任何方法都可以是操作符
  2. 操作符分为前缀, 中缀, 后缀
  3. Scala中所有操作符都是方法调用

Scala入门笔记

  1. 中缀操作符的两个操作数, 一个在左一个在右
  2. 前缀操作符方法名在操作符上加了unary_前缀(+, -, !, ~)
  3. 后缀操作符是不用点或括号调用的不带任何参数的方法

算术操作符: +, -, *, /, %

关系, 逻辑和位操作: >, <, >=, <=, ==, !=, &&, ||, &, |, ^, ~(反码)

位移操作: <<, >>, >>>(无符号右移)

Scala函数

函数式语言的一个主要特征是, 函数是第一类结构。

函数定义如下图:

Scala入门笔记

2.1 scala 函数的基本构成

Unit 的结果类型指的是函数没有返回有用的值。

函数式对象

object和class的区别在于: object关键字创建一个单例对象。

  1. 主构造器是类的唯一入口, 只有主构造器可以调用超类构造器
  2. override关键字用于在重载父类的非抽象成员和成员函数
  3. 同一个类内函数名相同而参数类型和个数不同的函数重载不需要override

Scala入门笔记

继承和多态

  1. 继承
  2. 多态和动态绑定特性

动态绑定的特性即父类指针可以指向子类对象, 通过父类指针调用成员方法时, 会查找实际所指向的对象, 然后调用对象的内的对应方法

Scala入门笔记

内建控制结构

表示式会产生一个值。

  1. Scala中if是能返回值的表达式, Scala中没有三元操作符, 但通过if (condition) var1 else var2 可以实现三元操作符的功能
  2. while和do-while被称为循环, 不产生有意义的结果
  3. Scala中for语句非常强大, for {子句} yield {循环体}
  4. match表达式可以产生值, match远强大与其他语言中的switch, 而且不需要显示的声明break
  5. 变量范围: 大括号引入了一个新的范围, 内部变量会遮盖同名的外部变量
  6. 占位符语法
  7. 函数文本(匿名函数, 类似于python中的lamda)

Scala入门笔记
Scala入门笔记

柯里化(carry)

Scala入门笔记

特质(trait)

特质就像带有具体方法的java接口;

特质和抽象类的区别: 抽象类主要用于有明确的父子继承关系的类树, 而特质可以用于任何类。

特质定义使用trait关键字

Scala入门笔记

数据结构

  1. Python中常用list, tuple, set, dict
  2. Scala对应的数据结构为List, Tuple[X], Set, Map(HashMap)
  3. Scala中默认为不可变对象, 操作会生成一个新的对象

  1. Scala采用java平台的包机制
  2. 使用import来进行引用
  3. package com.zhihu.antispam

参考链接

  1. Difference between object and class in Scala
  2. Scala 魔法函数
  3. Dependency Injection in Scala
  4. Databricks Scala 编程风格指南
  5. What are all the uses of an underscore in Scala?

End.

转载请注明来自36大数据(36dsj.com):36大数据 » Scala入门笔记

爱盈利-运营小咖秀 始终坚持研究分享移动互联网App数据运营推广经验、策略、全案、渠道等纯干货知识内容;是广大App运营从业者的知识启蒙、成长指导、进阶学习的集聚平台;

评论

相关文章推荐

SELECT dw_posts.ID,dw_posts.post_title,dw_posts.post_content FROM dw_posts INNER JOIN dw_term_relationships ON (dw_posts.ID = dw_term_relationships.object_id) WHERE 1=1 AND(dw_term_relationships.term_taxonomy_id = 3413 ) AND dw_posts.post_type = 'post' AND (dw_posts.post_status = 'publish') GROUP BY dw_posts.ID ORDER BY RAND() LIMIT 0, 6

京ICP备15063977号-2 © 2012-2018 aiyingli.com. All Rights Reserved. 京公网安备 11010102003938号