Scala语法

函数式编程能用常量不用变量
类型在变量名称之后
变量 var a: Int = 10
常量 val b: Int = 10

字符串模板
println(s" n a m e 今年 {name}今年 name今年{age}")
标准输入 StdIn.readLine() Stdin.readInt()
文件读写
读Source.fromFile(“path”)
写直接用java
val writer = new PrintWriter(new File(“pathname”))
writer.write(“hello scala from java writer”)
writer.close()
数据类型
java中的类型
char byte short int long float double boolean
Character Byte Short Integer Long Float Double Boolen
scale数据类型
在这里插入图片描述
循环
包含10for(i <- 1 to 10) println(i)
不包含10for(i <- 1 until 10) println(i)
遍历数组集合for(i <- Array(12,23,34,45,56,67)) println(i)
循环守卫for(i <- 1 to 3 if i !=2)
步长 for(i <- 1 to 10 by 2) println(i)
for(i <- 10 to 1 by -2) println(i)
面向过程,面向对象,函数式编程
面向过程 按照步骤 执行效率更高 命令式编程
面向对象 按照属性和行为 耦合度低 好维护 命令式编程
函数式编程 关注映射关系,当作数学中的函数 没有变量 推荐能用常量不用变量 能用val不用var 不断求表达式的值 每次求值都有返回值 编译器复制
面向过程和面向对象编程都是命令式编程,命令式编程计算机容易理解,人难以理解,而函数式编程只关注业务逻辑,更易于人的理解,不易于机器的理解,由于函数式编程的不可变性,特别适合大数据分布式计算,提高并行处理能力。
Scala函数式编程的使用
函数格式
def sum(x : Int ,y : Int) : Int = { x + y}
省略原则
不用return返回 默认返回最后一行
def f2(name:Strnig) = name
如果用return返回 返回值类型不能省略
def f2(name:Strnig) : String ={ return name}
空参数时候 调用可以省略()直接用函数名调用
省略函数名匿名函数lambda表达式
(name:String) => {name}
匿名函数的用法:函数作为函数的参数 确定了数据,传入操作:

def f(func : String => Unit): Unit = {
	func("函数作为函数参数")
}
f(name=>name)

匿名函数的简化

  • 参数类型可以省略,可根据形参推导
  • 只有一个参数可以省略括号
  • 匿名函数函数体只有一行括号可以省略
  • 如果参数只出现一次,则参数省略且后面的参数可_代替
  • 如果可以推断出当前传入的println是一个函数体,而不是调用语句,可以直接省略下划线
def dualFunctionOneAndTwo(fun: (Int,Int)=>Int) : Int = {
	fun(2,3)
}
dualFunctionOneAndTwo((a,b)=>a+b)
dualFunctionOneAndTwo(_+_)
dualFunctionOneAndTwo(_-_)
dualFunctionOneAndTwo(-_+_)

Scala 集合

  • Seq
  • Set
  • Map
    集合常用操作
    list.head
    list.tail
    list.last
    list.init
    list.reverse
    取前面若干个元素
    list.take(3)
    list.takeRight(7)
    去掉前面若干个元素
    list.drop(5)
    最大值
    list.max
    list.maxBy(匿名函数)
    list.sorted
    list.sorted(Odering[Int].reverse)
    list.sortBy(排序规则)
    list.filter(%2==0)
    list.map(
    *2)
    list.flattern
    list.flatmap(*2)
    list.groupBy(
    %2)
    list.reduce(+)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值