Scala基础语法

Scala基础语法

scala是一种多范式的编程语言,其设计的初衷是要集成面向对象和函数式编程的特性。并兼容java程序。

为什么要学scala?

1.优雅

2.速度快

3.能融合到hadoop生态圈

安装sdk
  • 到官网(https://www.scala-lang.org/)下载对应操作系统的sdk包。最好不要选择最新的版本
  • 可以cmd到源码包内执行scala,或者配置环境变量直接执行scala进入交互式窗口
idea集成scala
  • 点击新建项目,选择scala
  • 右侧选择idea自身的scala项目,下一步
  • 选择好jdk和scala后点击finsh,一个scala项目就创建完成了
基本语法(为了方便使用scala交互式窗口)
  • 数据类型
    Unit 表示无值,与其他语言中的void等同。用作不返回
    任何结果方法的返回值类型,Unit只有一个实例值()
    Any 是相当于java中的Object
    Anyval 中包含七种基本的值类型(基本类型)
    AnyRef 中包含所有的引用类型
    在这里插入图片描述

  • 变量
    定义变量(val 修饰的变量值不能再改变)
    1.var 变量名 = 值
    2.var 变量名:数据类型 = 值
    3.val 变量名 = 值
    定义Unit类型的变量
    1. val u:Unit = print(“hello world”)
    2. val s=()

  • 字符串的格式化输出
    普通输出
    print(“name=”+name,“age=”+age) //有括号
    print(“name=”+name+“age=”+age) //没括号
    printf动态取值输出
    //f相当于printf,这里%s打印的是字符类型,%1.2f打印的是float类型
    println(f"$name%s,学费= $pirce%1.2f,网址是$url");//该输出有换行
    printf("%s , 学费= %1.2f ,网址 = %s",name,price,url)//该输出没有换行
    s字符串插入器(可以处理表达式)
    println(s"age=${12+6}") //使用s申明,表达式写在${}中
    对象属性的输出
    var stu = new student()
    println(s"name=${stu.name}")

  • 条件表达式
    if (后面没有判断时,可以省略{},默认返回Unit。{}中的最后一行为返回值)
     1.if(条件) 符合值 else 不符合值
     2.if(条件){ 符合值}else if(条件) 符合值 else 不符合值
    for
     1.for(i<-表达式/数组/集合){}
     2. 1 to 10(相当于 1 to (10)) 左闭右闭区间
               for(1<- 0 to(5)){}
     3.1 until 10 左闭右开区间
              for(1<-0 until arr.length){}
    4.for(i<-arr;if i %2==0){} //;可以省略if为循环条件
    //双层for循环加循环条件,第一个;不可以省略
    5.for(i<-1 to 3;j<-1 to 3;if i!=j){}
    6.yield关键字
    for(i<-arr if i%2==0) yield i //返回值为一个数组,会过滤出符合你条件的集合

  • 运算符/操作符重载
    scala中的操作符的作用与java中一样,只不过这些操作符与运算符是方法。
    例如 a + b 等同于 a.+(b),省略时使用空格隔开

  • 方法的定义
    def 方法名(形参:类型,形参2:类型):返回值类型={} //除了def 方法名 与等号之外都可以省略不写

    ​ 如果定义时没写()则调用时也不能写()

    ​ add _ //在scala中方法与函数不为一个概念,方法可以加 _(这里为空格+下划线)转为函数

  • 函数的定义

    (Int,Int,Int)=> Int = //()内表示形参类型,=>左边表示返回值类型,=左边表示参数返回值类型

    ​ 交互式窗口中res42默认表示匿名函数

    • var fxo = (a:Int,b:Int) =>a+b
    • vat fxo2:(Int,Int)=>Int=(a,b)=>a+b
  • 传值调用和传名调用

    函数的参数可以是一个具体的数值,可以是一个表达式

    def test(x:Int) = {} //传值调用

    def test(x: =>Int) = {} //传名调用,传入的方法会被隐式转换成函数

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值