简介
Scala是一种多范式的编程语言,其设计的初衷是要集成面向对象编程和函数式编程的各种特性。Scala运行于Java平台(Java虚拟机),并兼容现有的Java程序。
优点
- 优雅:这是框架设计师第一个要考虑的问题,框架的用户是应用开发程序员,API是否优雅直接影响用户体验。
- 速度快:Scala语言表达能力强,一行代码抵得上Java多行,开发速度快;Scala是静态编译的。
- 能融合到hadoop生态圈:Hadoop现在是大数据实施标准,Spark并不是要取代Hadoop,而是要完善Hadoop生态。JVM语言大部分可能会想到Java,但Java做出来的API太丑,或者想实现一个优雅的API太费劲。
Scala常识
约定
object:指scala中的特殊的单例对象,注意不要把object翻译成对象,以
免冲突
对象:指new关键字所创建的实例,和java中的对象指代同一事物
类 :和java语言指代一样
方法:和java语言指代一样,也可以叫操作
函数:指的是某种特殊的实例,与方法不能混为一谈
特质:类似java接口,但比接口强大
字段:也叫属性编程规范
区分大小写:Scala是大小写敏感的,这意味着标识Hello和hello在Scala中会有不同的含义。标识符:Scala可以使用两种形式的标志符,字符数字和符号。字符数字使用字母或是下划线开头,后面可以接字母或是数字,符号”$”在Scala中也看作为字母。然而以”$”开头的标识符为保留的 Scala 编译器产生的标志符使用,应用程序应该避免使用”$”开始的标识符,以免造成冲突。
类名:对于所有的类名的第一个字母要大写。如果需要使用几个单词来构成一个类的名称,每个单词的第一个字母要大写。
示例:class MyFirstScalaClass方法名称:所有的方法名称的第一个字母用小写。
如果若干单词被用于构成方法的名称,则每个单词的第一个字母应大写。
示例:def myMethodName()程序文件名:程序文件的名称应该与对象名称完全匹配。
保存文件时,应该保存它使用的对象名称(记住Scala是区分大小写),并追加”.scala”为文件扩展名。(如果文件名和对象名称不匹配也可以)。代码语句分割:scala语句分割是英文分号(;)或换行,一条语句单独占一行时可省略分号,多条语句在一行时语句与语句之间的分号不可省略,
如: [1] val str = “scala 简学 ”; println(str)
[2] val hello = “Hello Scala”
[3] println(hello)程序入口
和其他语言一样,main方法都是操作系统调度执行时的执行入口,其为固定写
法:12345object HelloScala {def main(args: Array[String]): Unit = {//edit your code}}
注:main方法必须在单例对象object中
- App特质
在 Scala中有一个特殊的特质,即App特质,一个预先定义好了main方法的特质,因此一个继承了App特质的object代码不需要主方法也可运行
Scala基础
数据类型
Scala 中的面向对象更彻底,在 scala 语言的世界中,万物皆对象。其中最显著的就
是摒弃了基本数据类型(语法上),即放弃加减乘除等这些操作,取而代之的是加减乘除
方法。Scala 中的类层次结构图如下:
包操作
定义包
第一种:和Java一样,在文件头定义包名,后续所有代码都放在
该包中。12package com.runoobclass HelloWorld第二种:类似C#, 可以在一个文件中定义多个包。
123package com.runoob {class HelloWorld}
引用包
和Java一样使用import关键字导入包123456import java.awt.Color // 引入 Colorimport java.awt._ // 引入包内所有成员,import java.awt.{Color, Font}import java.util.{HashMap => JavaHashMap}// 重命名成员// 引入了 util 包的所有成员,但是 HashMap 被隐藏了import java.util.{HashMap => _, _}
声明变量
|
|
条件表达式
|
|
循环表达式
在scala中有for循环和while循环,用for循环比较多,while循环和java的一样
最后更新: 2018年11月15日 09:35