数据类型 :
byte 8bit的有符号数字,范围在 -128 --127
short 16bit 有符号数字,范围在-32768 --32767
int 32 bit 有符号数字
long 64bit 有符号数字
float 32bit单精度浮点数
double 64 bit 双精度浮点数
char 16bit 字符
String 字符串
boolean 布尔类型
Unit 表示无值,和其他语言的void等同
Null 空值或者空引用
Nothing 所有其他类型的子类型,表示没有值
Any 所有类型的超类,任何实例都属于Any类型
AnyRef 所有引用类型的超类
AnyVal 所有值类型的超类
None Option的两个子类之一,另外一个是Some,用于安全的函数返回值
Nil 长度为0的list
简单的语法:
1. 声明变量 var 变量名 声明常量 val 常量名
2. 打印 print() 不换行的打印 println() 换行打印
3. 创建类 关键字:class 类型{...} class默认可以传递参数,默认的传参数就是默认的构造函数。重写构造函数的时候,必须要调用默认的构造函数。class类属性自带getter,setter方法。不需要在定义。
4. 如果在一个文件中,object对象和class类的名称相同,则这个对象就是这个类的半生对象,可以互相访问私有变量。
例如 :
class Person(xname:String,xage:Int){
var name = Person.name
val age = xage
var gender ="m"
def this(name:String,age:Int,g:String){
this(name,age)
gener = g
}
def sayName()={
"my name is"+name
}
}
object Person{
val name="zhangsan"
def main(args:Array[String]):Unit={
val Person = new Person("wangwu",10,"f")
println(person.age)
println(person.sayName())
println(person.gender)
}
}
结果:
10
my name iszhangsan
f
4. if else条件判断
5.for, while,do ...while循环
6. to (前闭,后闭)和 until (前闭,后不闭)的用法,还可以添加步长,默认的步长是 1
例如 println(1 to 6) //打印1,2,3,4,5,6
println(1 until 6)//打印 1,2,3,4,5
println(1 to(6,2))//打印1,3,5 步长为2
打印九九乘法表:
for(i <- 1 until 10 ;j <- 1 until 10){
if(i>=j){
print(j +" * " + i + " = "+ i*j+" ")
}
if(i==j ){
println()
}
}
7. scala中没有 ++ 只能写成 count+=1 或者count = count+1