4、scala基础语法

目录

 

1.声明变量

 2.常用类型

3.条件表达式

4. 块表达式

​​​​​​​ 5.循环


1.声明变量

1.Val声明不可变变量    var声明可变变量      

2.声明格式:val/var  name : 类型 = 赋值      类型可省略

package cn.itcast.scala

  

  

  object VariableDemo {

  def main(args: Array[String]) {

    //使用val定义的变量值是不可变的,相当于java里用final修饰的变量

    val i = 1

    //使用var定义的变量是可变得,在Scala中鼓励使用val

    var s = "hello"

    //Scala编译器会自动推断变量的类型,必要的时候可以指定类型
    //变量名在前,类型在后

    val str: String = "itcast"

  }

}
 

​​​​​​​ 2.常用类型

Scala和Java一样,有7种数值类型Byte、Char、Short、Int、Long、Float和Double(无包装类型)和一个Boolean类型

3.条件表达式

  1. 条件表达式可作为右值
  2. 支持混和类型表达式,因为scala有自动推断类型功能
  3. 可缺失else
  4. 返回()表示返回Unit()相当于java 的void

       Scala的的条件表达式比较简洁,例如:

package cn.itcast.scala

  

  object ConditionDemo {

  def main(args: Array[String]) {

    val x = 1

    //判断x的值,将结果赋给y

    val y = if (x > 0) 1 else -1

    //打印y的值

    println(y)

  

    //支持混合类型表达式

    val z = if (x > 1) 1 else "error"

    //打印z的值

    println(z)

  

    //如果缺失else,相当于if (x > 2) 1 else ()

    val m = if (x > 2) 1

    println(m)

  

    //在scala中每个表达式都有值,scala中有个Unit类,写做(),相当于Java中的void

    val n = if (x > 2) 1 else ()

    println(n)

  

    //if和else if

    val k = if (x < 0) 0

    else if (x >= 1) 1 else -1

    println(k)

  }

}
 

 

 

4.​​​​​​​ 块表达式

package cn.itcast.scala

  object BlockExpressionDemo {

  def main(args: Array[String]) {

    val x = 0

    //在scala中{}中课包含一系列表达式,块中最后一个表达式的值就是块的值

    //下面就是一个块表达式

    val result = {

      if (x < 0){

        -1

      } else if(x >= 1) {

        1

      } else {

        "error"

      }

    }

    //result的值就是块表达式的结果

    println(result)

  }

}
 

​​​​​​​ 5.循环

在scala中有for循环和while循环,用for循环比较多

  1. for循环语法结构:for (i <- 表达式/数组/集合)
  2. 高级for循环,每个生成器都可以带一个条件,注意:if前面没有分号
  3. 使用yield构建集合
package cn.itcast.scala

  

  

  object ForDemo {

  def main(args: Array[String]) {

    //for(i <- 表达式),表达式1 to 10返回一个Range(区间)
    //每次循环将区间中的一个值赋给i

    for (i <- 1 to 10)

      println(i)

  

    //for(i <- 数组)

    val arr = Array("a", "b", "c")

    for (i <- arr)

      println(i)

  

    //高级for循环

    //每个生成器都可以带一个条件,注意:if前面没有分号

    for(i <- 1 to 3; j <- 1 to 3 if i != j)

      print((10 * i + j) + " ")

    println()

  

    //for推导式:如果for循环的循环体以yield开始,则该循环会构建出一个集合
//每次迭代生成集合中的一个值  

    val v = for (i <- 1 to 10) yield i * 10
// v= {10,20,30,40,50,60,70,80,90,100}

      println(v)

  

  }

  

}
 

猜你喜欢

转载自blog.csdn.net/make__It/article/details/86622149