scala基本语法

本文深入探讨Scala编程语言的特性,包括变量定义、类型推断、lazy变量、面向对象与函数式编程结合、控制结构、函数定义与调用、匿名与高阶函数、以及集合操作,对比Java并强调Scala的面向对象与函数式编程优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

文档

https://www.scala-lang.org/api/2.11.8

 

变量

变量的定义

val 定义变量时值无法更改,var可以

 

自动推荐类型

定义一个可变变量,使用 _ 下划线表示

 

变量lazy声明

只在调用的时候才会去计算

 

最后一行表示返回值

scala中一切皆对象

单纯从面向对象的角度来看待scala,可以说scala就是一门纯面向对象的编程语言,因为在scala中,一切都可以看做是对象。

这点和java是不同的,java中区分基本数据类型和引用类型。可以说scala比Java的面向对象理念还彻底!

 

3大结构

选择结构

和Java中选择结构是一样的,

if(表达式){

 

}

和Java不一样点:不支持3中运算符

 

循环结构

java for循环

for(int i=0;i<10;i++){

}

for(Object obj :xxx){

}

for(I <- Range(0,10)){

 

}

 

while循环

 循环关键字

类似于java的break和continue,但是scala中不能直接使用。

break

continue

函数

函数与方法的区别

方法method

    相对于OOP来说,

    类class

        属性,名词

        方法,动词,行为,如果一个函数放到一个类中,称函数为方法

函数function

    不在类中的方法

在面向对象编程中

    比如Java语言来讲,方法必须在类中,不能脱离class独立存在

    但是在FP中,比如scala,Python中,函数可以独立存在的,不需要依赖于class

scala语言中,即是OOP又是FP,也就是说对象(class)和函数都是一等功能,地位相同,都可以独立存在。

 

函数的定义

def 函数名称([参数名称:参数类型]):返回值类型 = {
   函数体

}

函数的调用

匿名函数

语法:

([函数名称:参数类型])=> 函数体

(1)如果函数体超过一行代码,{}

(2)匿名函数不需要指定函数的返回值类型,会自动推断

高阶函数

如果一个函数 的参数 包含一个 函数,该函数称为高阶函数

 

集合

回顾Java集合

     所有的集合类都是可变的(里面元素个数是可以变化)

     所有集合里面只能存储对象

     所有的集合类都是泛型

     列表List

        ArrayList

          数组

        LinkedList

          链表

     KV集合Map

          HashMap

     数学集合Set

          HashSet

               底层:HashMap          

Scala中集合

在Scala语言中,数组Array或者集合类(List,Set ,Map)分为可变集合和不可变集合2类

     第一类:Array 和List

          不可变的类名称:Array和List

          可变的类名称:ArrayBuffer和ListBuffer

     第二类:set和Map

          可变还是不可变名称都是set或map,变化的包的名称

          可变:mutable

               import scala.collection.mutable._

          不可变:immutable

               mport scala.collection.immutable._

注意:scala默认使用不可变的集合类,自动已经导 不可变 的包

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值