2019.11.28 scala 01

1.开发环境准备

1.1 scala sdk安装
jdk 1.8以上
1.2下载msi版本,下一步就完事儿了
下载zip版本自己配也成
在这里插入图片描述

2.IDEA创建工程

2.1不想默认打开上一次工程
settings->system settings->reopen last… 把√去掉
2.2
tips:点击左下角的小框框可以隐藏工具栏
项目框架->modules->添加依赖jar包
在这里插入图片描述
2.3如果new的时候找不到scala类
打开框架中的global labararies ->点击+号-> 添加scala依赖(这个要下载到本地解压喔qwq)
2.4 hello scala

object Helloscala{
def main(args:Array[String]):Unit={
println(“hello scala”)
}

}

2.5 cmd 窗口进入scala 页面也可以直接运行代码
2.6构建参数

object helloscala {
  def main(args:Array[String]):Unit={
    println("hello "+args(0))
  }

}

在这里插入图片描述

在这里插入图片描述

3.基本语法

3.1 函数式编程体验 spark-shell wordcount
cd …/spark目录/bin/spark-shell
sc.textFile(“文件路径”).flatMap(.split(" "))
sc.textFile(“文件路径”).flatMap(
.split(" ")).collect
sc.textFile(“文件路径”).flatMap(.split(" ")).map((,1)) ->变成数组

4.数据类型

scala和java一样,有7中数值类型 Byte、char、short、int、long、float、double(无包装类型)和boolean、unit类型
注意:unit 表示无值,和其他语言中void等同。用作不返回任何结果的方法的结果类型。unit只有一个实例值。写成()。

5.变量的定义

val 修饰的变量值不可变 相当于java中的final ,var修饰的变量值可变。
Unit 数据类型相当于java中的void关键字,但是在scala中它的标识形式是一对()。
var/val 变量名称:类型=值
ex:val a:Int=100

val s:Unit=peintln("hello")
==>>
hello
s:Unit()

println(f"$name%s 学费 p r i c e price%1.2f,网址是 priceurl")
//printf(%s 学费 %1.2f ,网址是%s“,name,price,url )
//文字‘f’插值器允许创建一个格式化的字符串,类似于c语言中的printf
//在使用‘f’插值器时,所有的变量引用都应该是printf样式格式说明符

在这里插入图片描述
val stu=new student(“taotao”,18)
println(s"$[stu.name]") s插值器,自动补全
Scala 提供了三种创新的字符串插值方法:s,f 和 raw.
三种字符串插值方法使用

if表达式的使用
val r=if(i<8) i //else 没有写,编译器会自动推测出你什么都没有返回就是unit
循环语句/yield关键字
在scala中有for循环和while循环,用for循环比较多
用脚标循环:var arr=Array(1,2,3,4,5)
for(ele<- 0 to 4)println(arr(ele)) //to前后都是闭区间,until前闭后开
如果不知道数组长度 for(ele <- 0 until arr.length) println(arr(ele))
for (a<-arr if a%2==0) yield a
针对每一次 for 循环的迭代, yield 会产生一个值,被循环记录下来 (内部实现上,像是一个缓冲区).
当循环结束后, 会返回所有 yield 的值组成的集合.
返回集合的类型与被遍历的集合类型是一致的.

scala中的定义方法和函数
1、val x:(a:Int,b:Int)=>a+b
2、val b:(Int,Int)=>Int=(x,y)=>x*y
传值调用和传名调用
def 方法名称(参数列表):方法返回值类型={
//方法体
}
def +(a:Int,b:Int):Int=a+b
方法转换成函数
方法名称_
//函数的定义=》
方法一:函数参数列表=>函数的函数体及返回值
(a:Int,b:Int)=>a+b//匿名函数
val add=(a:Int,b:Int)=>a+b
方法二:
val add:(Int,Int)=>Int=(x,y)=>x+y
函数名称:(参数类型=>函数返回值=(参数引用)=>函数体
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值