Scala语言基础

Scala是什么?

Scala的预期目标是将面向对象、函数式编程和强大的类型系统结合起来,同时让人要能写出优雅、简洁代码。
scala采用了java语言的大部分语法,表达式、语句、和代码块和Java一样,还有类、包和引用的语法

Scala的语言特点?

1. 面向对象的语言
2. 面向函数式编程的语言
3. 静态的语言
4. 扩展性良好
5. 支持Actor并发模型(多线程)

scala编程语言的规范?

4. scala的语法缩进要使用空格、不要使用tab键
7. 空行的目的,用于逻辑分组。比如  方法和成员变量之间应该多一个空行

scala的类型体系?

1. scala的超类(父类,基类)是Any
2. Any下有两个直接子类型,分别是AnyVal  和AnyRef
3. AnyVal有一些基本类型:
         Byte-->Short-->Int-->Long-->Float-->Double
                Char
         boolean
         Unit
         StringOps
4. AnyRef包括了java的所有引用类型、Scala的所有集合类型、以及Scala的其他引用类型,以及Null类型
5. Nothing是Scala的所有其他类型的子类型,位于类型层次的最底层
​
6. Null类型只有一个实例值是null
    scala> val a = ()
    a: Unit = ()
7. Unit和java的void相似,是一种类型,也只有一个实例()
    scala> val a = null
    a: Null = null

Scala计算遵守原则?

    1.  不同的数值类型计算时,需要转为同一种类型进行计算
    2.  如果是小于Int类型的两种类型计算、都转为Int类型计算
    3.  如果是其他情况的两种不同类型,那么就会转为较大类型的数据进行计算

Sacala的String类型?

1.  Scala的String的本质就是java的String
     “zhangsan”.getClass.toString
2.  赋值使用双引号
3. 也可以使用三引号,进行换行赋值
   var  name = """
            |zhangsan
            |lisi
            |"""        

Sacala的Option类型?

用来表示一个值是可选的,实际上就是有值和无值两种。
有值的话,是Some(value)
无值的话,就是None
​
总之:Option类型就两个值:Some(value)、None

Scala的常用运算符?(较难理解)

4. 短路逻辑运算符: 一般用于连接多个关系表达式的,结果也是true、false
            &&  :  一假则假,全真为真  
            ||  :   一真则真, 全假为假
            !  :   非真即假,非假即真
            
            短路逻辑:  当前面的条件可以确定结果后,后面的条件不再执行
5. 位运算符  :    1为 真   0为假
        &  : 与   口诀:  一0则0,全1为1            
        |  : 或   口诀:  有1则1,全0为0
        ^  : 异或  口诀:  相同为0,不同为1
        >> : 有符号右移, 原来是正,结果就是正,原来是负,结果就是负数 
        << :有符号左移, 原来是正,结果就是正,原来是负,结果就是负数
        
             有符号移动时,正数高位补0,负数高位补1
        >>>:无符号右移: 表示所有二进制位上的数向右移动,高位补0

** Scala的表达式的概念(重要)?

在scala中,只要是一句完整的代码,就是一个表达式,或者使一个语句块,或者使一个结构体,比如分支结构,循环结构,抛出异常对象,都是表达式。只要是表达式,那么一定有返回值

Scala的循环结构有哪些?

    -- while  : 条件成立时,才会执行循环体 
    -- do-while  :先执行一次循环体,再判断条件是否成立
    -- for循环:   

for循环结构的写法?

小贴士:  java中的for循环结构有两种写法
         一种是经典for循环写法  :       
                for(循环因子的声明和初始化;循环条件;向着循环结束的方向变化的表达式){}
         一种是增强for循环写法
                for(类型名  变量名:集合|数组){}
注意:scala里的for循环,相当于java中的增强for循环写法
​
for( 变量名 <- 集合|数组|Range|表达式 ){
    循环体
}
### Scala 基础语法教程 #### 变量声明与数据类型 在 Scala 中,所有的基本数据类型都被视为对象,这意味着可以直接对这些基础类型的值调用方法[^1]。变量可以通过 `var` 或者 `val` 来声明: - 使用 `var` 定义可变变量; - 使用 `val` 定义不可变常量。 ```scala // 可变变量 var mutableVariable: Int = 10 // 不可变常量 val immutableConstant: String = "Hello, world!" ``` #### 数据类型 Scala 支持多种内置的数据类型,包括但不限于整数 (`Int`)、浮点数 (`Double`, `Float`) 和布尔型 (`Boolean`) 等。值得注意的是,尽管看起来像是原始类型,但在内部实现上它们实际上是对象形式存在。 #### 字面量表示法 对于数值和其他简单类型的字面量表达方式如下所示: ```scala // 整数字面量 val integerLiteral = 42 // 浮点数字面量 val floatingPointLiteral = 3.14f // 单精度 val doublePrecisionLiteral = 3.14d // 双精度,默认情况下也是双精度 // 字符串字面量 val stringLiteral = "A string literal" // 符号字面量 val charLiteral = 'c' ``` #### 方法与函数的区别 在 Scala 中,“方法”特指作为类成员部分被定义的功能单元;而“函数”,则更像是一种独立的对象实体,能够被赋予给其他变量。因此,在编写时需注意两者的不同之处——创建方法仅能通过 `def` 关键字完成,而对于函数来说,则既可以用 `def` 也可以采用 `val` 进行初始化[^2]。 ```scala class Example { // 定义一个方法 def methodExample(x: Int): Unit = println(s"The value is $x") // 将匿名函数赋值给字段 val functionField = (y: Double) => math.sqrt(y) } object FunctionDemo extends App { new Example().methodExample(5) val sqrtFunction = (z: Double) => math.sqrt(z) } ``` #### 控制结构 控制流语句如条件判断和循环同样适用于 Scala 编程环境内。这里给出简单的逻辑运算符使用的例子来展示如何操作布尔表达式[^3]: ```scala object BooleanOperations { def main(args: Array[String]): Unit = { var a = true; var b = false; println("a && b = " + (a&&b)) println("a || b = " + (a||b)) println("!(a && b) = " + !(a && b)) } } ``` 上述代码片段展示了如何利用逻辑运算符执行真/假测试并打印结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值