Scala 学习(一) 初识

一,简介

二,数据类型和变量的定义

  2.1 常见的数据类型

  2.2 scala变量定义

三,字符串格式输出

四,条件和循环

  4.1 条件表达式、

  4.2 循环语句

  4.3 yield关键字

五,运算符和运算符的重载

 

 

 

正文

一,简介

  Scala 是一种多范式的编程语言,其设计的初衷是要集成面向对象编程和函数式编程的各种特  Scala  Java  Java ),  Java

二,数据类型和变量的定义

  2.1 常见的数据类型

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

  如下图所示:

  2.2 scala变量定义

   如下面代码所示:

object 变量定义 extends App {

    /**
    *定义变量使用 var 或者 val 关键字
    *语法:
    *var|val 变量名称 (: 数据类型) = 变量值
    */

    //使用 val 修饰的变量, 值不能为修改, 相当于 java 中 final 修饰的变量 
    val name = "小牛人"

    //使用 var 修饰的变量, 值可以修改
    var age = 18

    //定义变量时, 可以指定数据类型, 也可以不指定, 不指定时编译器会自动推测变量    的数据类型 
    val nickName: String = "牛牛"

}

三,字符串格式输出

  下面示例展现了scala的格式输出:

/**

*Scala 中的格式化输出

*/

object ScalaPrint extends App{

  val name = "小牛学堂"
  
  val pirce    = 998.88d

  val url    = "www.edu360.com"

  //普通输出

  println("name=" + name, "pirce=" + pirce, "url=" + url)

  //文字'f'插值器允许创建一个格式化的字符串,类似于 C 语言中的 printf。

  //在使用'f'插值器时,所有变量引用都应该是 printf 样式格式说明符,如%d,%i,%f 等。
  
  //这里$name%s 打印 String 变量 James 和$height%2.2f 打印浮点值 1.90。

  println(f"$name%s 学费 $pirce%1.2f, 网址是$url")    // 该行输出有换行

  printf("%s 学费 %1.2f, 网址是%s", name, pirce, url)    // 该行输出没有换行

  //'s'允许在处理字符串时直接使用变量。

  //在 println 语句中将 String 变量($name)附加到普通字符串中。 println(s"name=$name, pirce=$pirce, url=$url")

  //字符串插入器还可以处理任意表达式。

  //使用's'字符串插入器处理具有任意表达式(${1 + 1})的字符串(1 + 1)的以下代码片段。任何表达式都可以嵌入到${}中。

  println(s"1 + 1 = ${1 + 1}") // output: 1 + 1 = 2

}

四,条件和循环

  4.1 条件表达式

/**

*Scala if 条件表达式

*/

object ScalaIf extends App{

    //if 语句的使用

    val faceValue: Int = 99
    
    val res1 = if(faceValue > 90 ) "帅的不要不要的" else "瘪犊子玩意儿" println(res1)
    
    //8 > 8 不成立, 且代码没有 else 分支, res2 是什么呢 val i = 8
    
    val res2 = if (i > 8) i println(res2)
    
    val res3 = if (i > 8) i else "前面是整型这里是字符串, 那个 res3 是个啥?" println(res3)
    
    //if ... else if ... else 代码较多时可以使用代码块{} val score = 76
    
    val res4 = {
    
    if(score > 60 && score < 70) "及格"
    
    else if(score >=70 && score < 80) "良好" else "优秀"
    
    }
}

  4.2 循环语句

  在 scala 中有 for 循环和 while 循环,用 for 循环比较多 for 循环语法结构:for (i <- 表达式/数组/集合)

/**

*Scala for 循环

*/

object ScalaFor extends App {

    //定义个数组, 元素为 1 到 6
    
    val array = Array(1, 2, 3, 4, 5, 6)
    
    //遍历打印数组中的每个元素
    
    for(ele <- array) { // 类似 Java 中的增强 for
        println(ele)
    }
    
    //通过角标获取数组中的元素
    
    //定义一个 0 到 5 的角标范围
    
    for(i <- 0 to 5) { // 0 to 5 => 会生成一个范围集合 Range(0,1,2,3,4,5)
        println(array(i))
    }
    
    for(i <- 0 until 6) { // 0 until 6 => 会生成一个范围集合 Range(0,1,2,3,4,5)
        println(array(i))
    }
    
    //to 和 until 的区别就是 to 包含为前后都为闭区间, until 为前闭后开区间
    
    //打印数组中的偶数元素
    
    for(e <- array if e % 2 == 0) { // for 表达式中可以增加守卫 println(e)}
    
    //观察下面代码输出结果
    
    for(i <- 1 to 3; j <- 1 to 3 if i != j) { println((10 * i + j) + " ")}
    
    for(e <- array if e % 2 == 0) yeild e
    
}

  4.3 yield关键字

  将一个循环循环出来的值存在一个数组中,并返回。

  如下所示:

for(e <- array if e % 2 == 0) yeild e

五,运算符和运算符的重载

  Scala 中的+ - * / %等操作符的作用与 Java 一样,位操作符 & | ^ >> <<也一样。只是有一点特别的:这些操作符实际上是方法。例如:

a + b
是如下方法调用的简写:
a.+(b)
a 方法 b 可以写成 a.方法(b)

猜你喜欢

转载自www.cnblogs.com/tashanzhishi/p/10948343.html
今日推荐