scala层级及一些方法

scala数据层次结构:
Any
AnyVal AnyRef
double float long int short byte unit boolean char list option yourclass(scalaObject scala.String)
nothing null
nothing
单词计数:st.flatMap(x=>x.split(" ")).map(x=>(x,1)).groupBy(x=>x._1).map(x=>(x._1,x._2.size))

java:
substr是从起始点截取某个长度的字符串:substr(start,length)
substring是截取2个位置之间的字符串:substring(start,end) scala里只有这种 没有substr

柯里化:注意事项:sscala里面{后面写东西无效(报错)
def fun(a:Int,b:Int)

定义在main方法里面的内容,println写在里面才能看到9外面看不到) 定义在类里,main里面能里看到
函数的定义:
def f1(a:Int,b;Int):Int={…}=def f1(a:Int,b:Int)=…
隐式函数:
优先级:传参>隐式参数>默认
多个隐式参数 只需写一个implicit :(a1:Int,a2:Int) 匹配类型不是字母ab都一样
隐式参数必须有默认值时,才可以给位置’()'否则报错
有默认值时:给了()位置,则使用默认值 否则使用外面的隐式参数 因为给了()相当于传参
模式匹配:(模式匹配是等于)
def match1(x:Any):Unit=x match{
case 1=>println(1)
case i:Int=>println(“Int”+i)
case _=>println(“其他”)
对多个参数传进来,模式匹配守卫模式,相当于进行再次过滤:case _ if case _应写在最后面 (按序匹配 匹配到则后面不匹配了!)
样例类:调用不需要用new(也可以用new)
case class Student(参数1:类型,参数2:类型…) val a=Student(参数1,参数2…)
其他类如Array:var a:Array[String]=new ArrayString
java里==比的是地址 scala比的是值

元组:(最多22个)
定义的3种方式:
var a=(“hello”,2,3,‘a’)
var a=new Tuple5(1,2,3,4,5) 5对应5个
def a=“name”->3->5->“ok” (((name,3),5),ok)
迭代输出元组所有:a.productIterator.foreach(x=>println(x))
DoubleToInt/StringToDouble进行转换
对于参数个数未知 用可以传递多个参数:def showMsg2(name: String, s: String) = {…}
匿名函数:带>头
val aa=(a:Int,b:Int)=>a+b (有>) 方法定义:def sum(a:Int,b:Int)=a+b (没有>)
val bb=aa println(bb):function2对比println(bb(1,2)):3
跳出break:
import scala.util.control.Breaks
var loop=new Breaks
loop.breakable{…}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值