纸上得来终觉浅,绝知此事要躬行!
Scala程序开发注意事项
1)Scala源文件以“.scala"为扩展名。
2)Scala程序的执行入口是main()函数。
3)Scala语言严格区分大小写。
4)Scala方法由一条条语句构成,每个语句后不需要分号(Scala语言会在每行后自动加分号),这也体现出Scala的简洁性。
5)如果在同一行有多条语句,除了最后一条语句不需要分号,其它语句需要分号
Scala的执行流程
Scala语言输出的三种方式
基本介绍
1)字符串通过+号连接(类似java)。
2)printf用法(类似C语言)字符串通过%传值。
3)字符串通过$引用(类似PHP)。
4应用案例
println("hello"+sal+name)//使用格式化的方式
printfprintf("name=%ssal=%f\n",name,sal)//使用$引用的方式,输出变量,类似php
println(s"第三种方式name=$namesal=$")
注释(comment)
介绍:用于注解说明解释程序的文字就是注释,注释提高了代码的阅读性;注释是一个程序员必须要具有的良好编程习惯。将自己的思想通过注释先整理出来,再用代码去体现。
Scala中的注释类型
1)单行注释 //
2)多行注释/* */
3)文档注释/** */
变量---不论是使用哪种高级程序语言编写程序,变量都是其程序的基本组成单位,
变量使用的基本步骤
1)声明/定义变量(scala要求变量声明时初始化)
2)使用
scala变量的基本使用
变量声明基本语法
var|val变量名 [: 变量类型] = 变量值
注意事项
1)声明变量时,类型可以省略(就是叫 类型推断)
2)类型确定后,就不能修改,说明Scala 是强数据类型语言
3)在声明/定义一个变量时,可以使用var 或者 val 来修饰, var 修饰的变量可改变,val 修饰的变量不可改
4)val修饰的对象属性在编译后,等同于加上final
5) var 修饰的对象引用可以改变,val 修饰的则不可改变,但对象的状态(值)却是可以改变的。(比如: 自定义对象、数组、集合等等)
6)变量声明时,必须有初始值(显示初始化)。
数据类型
scala数据类型介绍
Scala 与 Java有着相同的数据类型,在Scala中数据类型都是对象,也就是说scala没有java中的原生(基本)类型
Scala数据类型分为两大类 AnyVal(值类型) 和 AnyRef(引用类型), 注意:不管是AnyVal还是AnyRef 都是对象。
相对于java的类型系统,scala要复杂些!也正是这复杂多变的类型系统才让面向对象编程和函数式编程完美
的
融合在了一起
scala数据类型列表
基本介绍
Scala的整数类型就是用于存放整数值的,比如 12 , 30, 3456等等
整型的类型以及使用细节
Scala各整数类型有固定的表数范围和字段长度,不受具体OS的影响,以保证Scala程序的可移植性。
Scala的整型 常量/字面量 默认为 Int 型,声明Long型 常量/字面量 须后加‘l’’或‘L’
Scala程序中变量常声明为Int型,除非不足以表示大数,才使用Long
浮点类型
基本介绍
Scala的浮点类型可以表示一个小数,比如 123.4f,7.8 ,0.12等等
浮点型的分类
浮点型使用细节
1)与整数类型类似,Scala 浮点类型也有固定的表数范围和字段长度,不受具体OS的影响。
2)Scala的浮点型常量默认为Double型,声明Float型常量,须后加‘f’或‘F’。
3)浮点型常量有两种表示形式
十进制数形式:如:5.12 512.0f .512 (必须有小数点)
科学计数法形式:如:5.12e2 => 5.12 乘以 10的2次方 5.12E-2 =》 表示5.12 除以 10的2次方
4) 通常情况下,应该使用Double型,因为它比Float型更精确(小数点后大致7位)
测试数据 :2.2345678912f , 2.2345678912 // 2.7 与 8.1/3
字符类型
字符类型可以表示单个字符,字符类型是Char, 16位无符号Unicode字符(2个字节), 区间值为 U+0000 到 U+FFFF
字符类型使用细节
1) 字符常量是用单引号(‘ ’)括起来的单个字符。例如:var c1 = 'a‘ var c2 = '中‘ var c3 = '9'
2) Scala 也允许使用转义字符‘\’来将其后的字符转变为特殊字符型常量。例如:var c3 = ‘\n’ // '\n'表示换行符
3)可以直接给Char赋一个整数,然后输出时,会按照对应的unicode 字符输出 ['\u0061' 97]
4) Char类型是可以进行运算的,相当于一个整数,因为它都对应有Unicode码.
布尔类型:Boolean、
基本介绍
1)布尔类型也叫Boolean类型,Booolean类型数据只允许取值true和false
2)boolean类型占1个字节
3)boolean 类型适于逻辑运算,一般用于程序流程控制:
if条件控制语句
while循环控制语句
do-while循环控制语句
for循环控制语句
lUnit类型、Null类型和Nothing类型
使用细节和注意事项
1)Null类只有一个实例对象,null,类似于Java中的null引用。null可以赋值给任意引用类型(AnyRef),但是不能赋值给值类型(AnyVal: 比如 Int, Float, Char, Boolean, Long, Double, Byte, Short)
2)Unit类型用来标识过程,也就是没有明确返回值的函数。由此可见,Unit类似于Java里的void。Unit只有一个实例,(),这个实例也没有实质的意义
3)Nothing,可以作为没有正常返回值的方法的返回类型,非常直观的告诉你这个方法不会正常返回,而且由于Nothing是其他任意类型的子类,他还能跟要求返回值的方法兼容。
l值类型转换
值类型隐式转换
当Scala程序在进行赋值或者运算时,精度小的类型自动转换为精度大的数据类型,这个就是自动类型转换(隐式转换 implicit conversion)。
数据类型按精度(容量)大小排序如图
自动类型转换细节说明
1)有多种类型的数据混合运算时,系统首先自动将所有数据转换成容量最大的那种数据类型,然后再进行计算。
2)当我们把精度(容量)大 的数据类型赋值给精度(容量)小 的数据类型时,就会报错,反之就会进行自动类型转换。
3)(byte, short) 和 char之间不会相互自动转换。
4)byte,short,char 他们三者可以计算,在计算时首先转换为int类型。
5)自动提升原则: 表达式结果的类型自动提升为 操作数中最大的类型
scala还提供了非常强大的隐式转换机制(隐式函数,隐式类,隐式值,implicity等等),后面详细介绍
强制类型转换
自动类型转换的逆过程,将容量大的数据类型转换为容量小的数据类型。使用时要加上强制转函数,但可能造成精度降低或溢出,格外要注意。
java : int num = (int)2.5
scala : var num : Int = 2.7.toInt //灵活
强制类型转换
1)当进行数据的 从 大——>小,就需要使用到强制转换
2)强转符号只针对于最近的操作数有效,往往会使用小括号提升优先级
3)Char类型可以保存 Int的常量值,但不能保存Int的变量值,需要强转
4)Byte和Short类型在进行运算时,当做Int类型处理。
在程序开发中,我们经常需要将基本数据类型转成String 类型。
或者将String类型转成基本数据类型。
基本类型转String类型 String类型转基本数据类型
String str = true+""
l标识符的命名规范
标识符概念
1)Scala 对各种变量、方法、函数等命名时使用的字符序列称为标识符
2)凡是自己可以起名字的地方都叫标识符
●
标识符的命名规则
Scala中的标识符声明,基本和Java是一致的,但是细节上会有所变化。
1)首字符为字母,后续字符任意字母和数字,美元符号,可后接下划线_
2)数字不可以开头。
3)首字符为操作符(比如+ - * / ),后续字符也需跟操作符 ,至少一个
4)操作符(比如+-*/)不能在标识符中间和最后.
5)用反引号(飘号)`....`包括的任意字符串,即使是关键字(39个)也可以
标识符命名注意事项
1)包名:尽量采取有意义的包名,简短,有意义
2)变量名、函数名 、方法名 采用驼峰法。
Scala关键字关键字介绍
Scala有39个关键字:
package, import, class,object,trait, extends,with, type, for
private, protected, abstract,sealed, final,implicit, lazy, override
try, catch, finally, throw
if, else,match, case, do, while, for, return,yield
def,val,var
this, super
new
true, false, null
x学习使人进步,共勉,加油!