首页 > 其他分享 >scala快速学习笔记

scala快速学习笔记

时间:2022-12-22 10:23:10浏览次数:39  
标签:fun 函数 val scala object 笔记 学习 类型 date

  1. val 是不可变, var 是可变对象

  2. trait 相当于 interface(多继承)和abstract(变量、方法实现)的结合体
    3.模式匹配:更灵活的Switch case(1 匹配值的时候,值类型可以不一样。2 可以匹配类型)
    4.类型
    Unit 表示void
    Noting 表示所有其他类型的子类型,表示没有值。不能有实例。用在类型推断推断不出来的时候,比如 val list=List()
    Any 所有类型的超类,是Object的子类。可以理解为Scala里的Object
    AnyRef 所有引用类型的超类
    AnyVal 所有值类型的超类
    Nil 表示长度为0的List
    5.定义类
    新建一个object(不是class,也不是trait),就相当于一个静态单例类,所有函数和变量都是静态的。
    定义class的时候,可以直接传入参数,相当于构造函数。
    重载构造函数时,直接用 def this,并且第一行必须调用默认this
    类的属性默认是public,除非显示private
    同一个文件的class和object同名,互为伴生,可以相互访问私有属性。
    object可以有apply方法,使用时直接用object的名字即可。

  3. 流程控制语句
    if else 和java一样
    while、 do while 和java一样,没有i++只有i+=1
    操作符方法 val a= 1 to 10,是 val = 1.to(10,1)的语法糖。
    s“$i” 等同于 ""+i,字符串化
    双重循环,可以用分号分割,写在一个for里面。 for里面还能写if,放在分号后面就行
    配合yeild关键字,还能把for 里面的变量取出来组成一个集合
    匿名函数 collect.foreach( e=>{print(e)}),有点像lambda。如果e只用一次,可以用_代替

7.方法\函数定义
返回值可以自动推断,但方法体内不能有return(必须省略)
如果只有一行,花括号可以省略
如果省略了方法名和方法体的等号,说明返回值为Unit
支持参数默认值

8.偏应用函数:某些情况下,方法的参数非常多,但是调用很频繁,只有少数参数变化,则可以定义偏应用函数,简化参数个数。
比如有一个函数 def fun(date:Date,log:String):Unit = print(s"$date $log")
然后date是不变的,但是要打印很多log,于是就会要 val date =new Date(); fun(date,"第一行");fun(date,"第二行").
为了每次不要都写两个参数,可以定义一个偏应用函数 def newfun = fun(date,_:String); 以后只需要 newFun("第一行"); newFun("第二行") 就可以了。

标签:fun,函数,val,scala,object,笔记,学习,类型,date
From: https://www.cnblogs.com/JMLiu/p/16997785.html

相关文章

  • 【博学谷学习记录】超强总结,用心分享 | 动态规划经典例题总结二
    打家劫舍Ⅰ题目你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在......
  • Activity7学习入门(七)
    官网地址:https://activiti.gitbook.io/activiti-7-developers-guide/components/activiti-cloud-modelingActivitiCloudModelingActiviti云建模服务提供后端和前端功能......
  • 【博学谷学习记录】超强总结,用心分享 | 动态规划经典例题总结一
    不同路径Ⅰ题目一个机器人位于一个mxn网格的左上角(起始点在下图中标记为“Start”)。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中......
  • Java学习笔记4
    1.循环进阶1.1无限循环概念:​ 循环一直停不下来,又叫死循环。for格式:for(;;){循环语句;}while格式:while(true){循环语句;}do...while格式:do{......
  • RHCSA-2学习摘要
     Liunx发行版本(1)RHEL----红帽公司(2)CentOS----红帽系统(3)Fedora----红帽系统(4)openSUSE----德国厂商(5)Gentoo----操作比较发杂(6)Debian(7)Ubuntu国产发行版本:RedFlag中标深度 ......
  • Java学习
    下载 一般使用Java8或Java11 https://www.oracle.com/cn/java/technologies/downloads/#java8-windows安装安装路径不要有空格或中文https://zhuanlan.zhihu.com/p/3......
  • 微服务异步通讯——RabbitMQ消息队列复习笔记
    服务异步通讯——RabbitMQ复习随笔微服务间通讯有同步和异步两种方式:同步通讯:就像打电话,需要实时响应。异步通讯:就像发邮件,不需要马上回复。两种方式各有优劣,打电话......
  • FreeSWITCH学习笔记:日志
    本文更新于2022-12-21,使用FreeSWITCH1.10.7。目录拨号计划媒体协商NAT打洞RTP自动调整local_stream流主叫号码翻转常见日志示例如下。拨号计划a5fe78c0-84cd-11ec-9fd......
  • 决策树笔记
    文章目录​​决策树​​​​决策树一句话概括​​​​什么是决策树?​​​​信息熵H(X)​​​​条件熵H(Y|X)​​​​例:求信息熵,条件熵​​​​决策树构建过程​​​​如何......
  • Docker 笔记
    title:Docker笔记.mddate:2022-12-1917:02:34tags:-Docker什么是Docker?官方介绍wehelpdevelopersanddevelopmentteamsbuildandshipapps.我们帮助开......