scala基础1

搭建Scala开发环境
理解Scala变量与数据类型
掌握Scala程序控制
掌握Scala数组,元组与集合
一:提前熟悉
1.scala简历
①scala底层是java,与java兼容,互通
②spark采用Scala语言设计

2.Scala有三种形式
object class trait

3.object
object Helloworld{
def main(args:Array[String]):Unit={
println(“Hello,world!”)
}
}

二:Scala概述
面向对象特性
*每个值都是对象
*对象的数据类型和行为由类(class)和特征(Trait,类似与interfere)
函数式编程
*每个函数都是一个值
*支持高阶函数…
Scala是静态类型语言

三、Scala变量与常量
变量 :
var 变量名称:类型=xxx
**一般无需显示指定类型,Scala编译器会自动推断出类型
var name=“xaihui”
name:String
常量:
val 常量名称:类型=xxx
varl money=100
money:Int=100

使用类型别名定义变量
type 关键字
type 类型别名=类型
type T=String
val name:T=“jason”

四:Scala关键字列表
scala基础1
五:Scala数据类型
Scala与Java有着相同的原始数据类型
scala基础1
Scala数据类型层次结构
Any:所有类型的超类
AnyVal:表示值类型的超类
AnyRef:表示引用类型的超类,对应java.lang.Object
Unit:表示无值,类似java中的void
Nothing:所有类型的子类
Null:表示null或空引用

scala基础1
六:字符串插值
*s插值器:允许将变量引用、表达式直接插入字面字符中
val name=“jame”
println(s"hello, n a m e " ) / / h e l l o , j a m e p r i n t l n ( s " 1 + 1 = name") //hello,jame println(s"1+1= name")//hello,jameprintln(s"1+1={1+1}") //1+1=2
f插值器
println(f"$name%s is $height%2.2f metres tall")
raw 插值器
s “a\nb”
raw “a\nb”

七:Scala条件控制
1.条件控制
①if语句
val x=10
if(x>0){
print("x大于0“)
}

②if…else
val x=10
if(x>10){
print(“x小于10”)
}else if(x10){
print(“x等于10”)
}else{
print(“x大于10”)
}
2.条件语句返回值
① Scala任何表达式都有返回值
val x=10
val y=if(x
10) x+1 else x //单行表达式可以省略{}
//y=11

代码块“{…}” 也是表达式,返回值为最后一个表达式结果
val x=10
val y={
print(“我是代码块”)
x+1
}

val x=10
val y={
x+1;
}

八、Scala循环控制
while 循环
var num:Int=0;
while(num<100){
println(num);
num=num+1;
}
var num:Int=0;
do{
println(num)
num=num+5
}while(num<200)

for 循环 (to,until)
val num:Int=10;
for(i:int<-1 to num){
println(i+5)
to 包括10,until 不包括10

例子:

打印直角三角行

val num:Int=10
for(i:Int<-1 to num){
for(j:Int<-1 to num-i)
print("*")
}
println()

打印三角形
var num:Int=10
for(i:Int<-1 to num){
for(j:Int<-1 to num-i){
println(" “)
}
for(j:Int<-1 to i2-1){
println("
”)
}
println( )
}

Scala 循环控制2

中断

import scala.util.control.Breaks._
var num:Int=10
for(i:Int<-1 to num by 2){
if(i>5) break;
println(i)
}

import scala.util.control.Breaks
var num=10
val loop =new Breaks
loop.breakable{
for(x <-num to 1 by -1){
if(x<3) loop.break
println(x)
}

九、Scala数组
储存固定大小的元素
数组索引从0开始
//数组创建方式一
var a1:Array[String]=new ArrayString
a1(0)=“jason”
a1(1)=“Marie”
a1(2)=“xiahui”
//数组创建方式二
var a2=Array(“jason”,“marrie”,“jimmar”)
//数据创建方式三:区间数组
var a3=Array.range(1,10,2)