五:Scala学习之-函数定义及数据类型

  • 内容:

  • 1::val和var区别:

  • 2: Scala必学数据类型:

  • 3:运算符优先级:

  • 4:函数的定义:

  • 5:几个重要表达式:

1:val和var区别:

数据类型第一字母必须大写,val是值类型,内容不允许变更,var 是可变类型,内容可更新;
变量类型可自动推导,定义时候可省。

scala> ~~val money:int = 10000~~ 
<console>:11: error: not found: type int
       val money:int = 10000
                 ^

scala> val money:Int = 10000
money: Int = 10000

scala> val money:Int = 10000+8000
money: Int = 18000

scala> money=20000
<console>:12: error: reassignment to val
       money=20000
            ^

scala> var name:String ="xiaoming"
name: String = xiaoming

scala> name = "guodaxia"
name: String = guodaxia

scala> var city = "kunming"
city: String = kunming

scala> city = "hangzhou"
city: String = hangzhou

scala> val money = 1000f
money: Float = 1000.0

scala> val money =1000l
money: Long = 1000

2:Scala必学数据类型:

spark学习重点关注Int/Long/- Float/Double-String/Boolean

在这里插入图片描述
判断一个数是否为哪个类型(中间有空格),结果为布尔类型

scala> 10.isInstanceof[Int]
<console>:12: error: value isInstanceof is not a member of Int
       10.isInstanceof[Int]
          ^

scala> 10. is
isInfinite   isInfinity   isInstanceOf   isNaN   isNegInfinity   isPosInfinity   isValidByte   isValidChar   isValidInt   isValidLong   isValidShort   isWhole

scala> 10. isInstanceOf[Int]
res1: Boolean = true

scala> 10.2
res2: Double = 10.2

scala> 10.2. asInstanceOf[Long]
res3: Long = 10


3:运算符优先级:

运算符的优先级:
运算符优先级如下图所示,* / %优先级最高,依次类推
在这里插入图片描述

4:函数的定义:

def 函数名称(X:Int,Y:Int):Int={
…//方法体
x+y // 默认返回值
}

object FirstCourse {
def main(args: Array[String]): Unit = {
// println(add3(3,6))
// sayhello()
sayhello // 无入参数的函数,()都可以不要
}
def add(x:Int, y:Int):Int ={
x+y
}
def add2(x:Int, y:Int) ={
x+y
}
def add3(x:Int,y:Int)=x + y //如果就一句,{}都可以不用
def sayhello()={println(“我要开始飞了”)}

4.1默认参数*****:

sayname() //调用时()不能省。

def sayname(name:String=“天朝”)={
println(name)
}

4.2可变参数*****:

println(sum(1 to 10 :_)) 可变参数,后面加 :-

def sum(a:Int*)={
    var result =0
    for(x<-a){
      result += x
    }
    result
  }

5:几个重要表达式:

to [1,10]
until [1,10)
Range [1,10)

foreach 对前面集合的每一个元素都做同一操作 function(println)
Array(“scala”,“hive”,“spark”).foreach(x=>println(x))
for (i<- 1 to 10 if(i%2==0))

scala> 1 until 10
res1: scala.collection.immutable.Range = Range(1, 2, 3, 4, 5, 6, 7, 8, 9)

scala> 1. to (10)
res2: scala.collection.immutable.Range.Inclusive = Range(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)

scala> 1. until(10)
res3: scala.collection.immutable.Range = Range(1, 2, 3, 4, 5, 6, 7, 8, 9)

scala> Range(1,10)
res4: scala.collection.immutable.Range = Range(1, 2, 3, 4, 5, 6, 7, 8, 9)

scala> Range91,10,2)
<console>:1: error: ';' expected but ',' found.
Range91,10,2)
       ^

scala> Range(1,10,2)
res5: scala.collection.immutable.Range = Range(1, 3, 5, 7, 9)

猜你喜欢

转载自blog.csdn.net/weizhonggui/article/details/84865189
今日推荐