Scala基础语法笔记

  • 1.Scala的数据类型:
Byte        8位有符号补码整数。数值区间为 -128127
Short       16位有符号补码整数。数值区间为 -3276832767
Int         32位有符号补码整数。数值区间为 -21474836482147483647
Long        64位有符号补码整数。数值区间为 -92233720368547758089223372036854775807
Float       32位IEEE754单精度浮点数
Double      64位IEEE754单精度浮点数
Char        16位无符号Unicode字符, 区间值为 U+0000 到 U+FFFF
String      字符序列
Boolean     truefalse
Unit        表示无值,和其他语言中void等同。用作不返回任何结果的方法的结果类型。
            Unit只有一个实例值,写成()。
Null        null 或空引用
Nothing     Nothing类型在Scala的类层级的最低端;它是任何其他类型的子类型。
Any         Any是所有其他类的超类
AnyRef      AnyRef类是Scala里所有引用类(reference class)的基类
  • 2.变量的定义

scala有变量类型推断机制,所以我们声明变量直接用类似javascript的var就行

//普通变量声明:
var a = 10
var b = "lijie"

//常量声明:
val a = 10

//多变量声明
var a,b = 10
  • 3.scala的分支

3.1 if类型

if(布尔表达式)
{
   // TRUE TODO
}

3.2 if…else…类型

if(布尔表达式){
   // TRUE TODO
}else{
   // FALSE TODO
}

3.3 if…else if…else…类型

if(布尔表达式 1){
   // TRUE TODO
}else if(布尔表达式 2){
   // TRUE TODO
}else if(布尔表达式 3){
   // TRUE TODO
}else {
   // FALSE TODO
}

例子:

if (a < 0) {
        println("小于0")
   } else if (a > 0) {
        println("大于0")
   } else {
        println("等于0")
}
  • 4.scala的循环

4.1 while 循环

while(condition){
   //TODO
}

//例子:
while(true){
    print("lijie")
}

4.2 do…while 循环

do {
   //TODO
} while( condition )

//例子:
do{
    print("lijie")
} while(true)

4.3 for循环

for( var x <- Range ){
   //TODO
}

//例子1:
for(a <- 1 to 10){
    println("number is :"+a)
}

//例子2(添加)筛选条件:
for(a <- 1 to 10;if a != 5;if a <= 8){
    println("number is :"+a)
}

//例子3(for的推导式):
var tmp = for (i <- 1 to 10) yield {i+1}

//例子4(for推倒式的9*9乘法表):
var tem1 = for (a <- 1 until 10) yield {
    var tem2 = for (b <- 1 to a) yield {
      b + " * " + a + " = " + a * b + "\t"
    }
    tem2
  }
  for (a <- tem1) {
    for (b <- a) {
      print(b)
    }
    println()
  }

//例子5(循环的中断,在java中可以用break,scala中需要先定义一个对象):
var brk = new Breaks
  brk.breakable(
    for (a <- 1 to 10) {
      if (a == 5) {
        //当a为5时中断循环
        brk.break
      }
      //这里只会出处1234
      print(a)
    })
  • 5. scala的函数

5.1函数定义:

def functionName ([参数列表]) : [return type] = {
   function body
   return [expr]
}

例子:
def add(a:Int,b:Int) : Int = {
    return a+b
}

5.2 函数传递可变参数:

例子:
def show(arr: String*) = {
    for (a <- arr) {
      println(a)
    }
  }

  show("hello","lijie")

5.3 函数的递归(例如阶乘)

def factorial(n: BigInt): BigInt = {
    if (n <= 1)
      1
    else
      n * factorial(n - 1)
  }
  //结果为120
  print(factorial(5))

5.4 函数设置默认参数值

def show(a: Int = 1, b: Int = 1) = {
    print(a+b)
  }

5.5 匿名函数和函数简写

var inc = (a: Int) => a + 1

5.6 偏应用函数

  var show = (a: String, b: String) => { println(a + "\t" + b) }
  var a = "hello"
  var showNew = show(a, _: String)
  showNew("lijie")

5.7 函数柯里化

def add(x:Int,y:Int)=x+y

//变成下面的
def add(x:Int)(y:Int) = x + y
  • 6.scala的闭包
    含义:闭包是一个函数,返回值依赖于声明在函数外部的一个或多个变量。
  var a = 10
  var addN = (n: Int) => a + n

  //输出12
  print(addN(2))
  • 7.scala的数组
//第一种
var arr = new Array[String](2)
arr(0) = "hello"
arr(1) = "lijie"

//第二种
var arr = Array(1,2,3,"hello","lijie")
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值