scala基础知识复习!武汉加油!

在这里插入图片描述

scala基础知识复习

最近都不能去武汉了,只能在家宅着。我们还是来复习一下平时的最基础的scala的知识吧。

1.1 那我们开始最基础的hello,world吧

package com.mazh.scala.helloworld 
 
object HelloWorld { // 作用类似于 java 中的 main 方法
 
  def main(args: Array[String]): Unit = { 
    println("hello world") 
  } } 

1.2、变量定义

package com.mazh.scala.core 
 
object VariableDemo { 
  def main(args: Array[String]) { 
 // 使用 val定义的变量值是不可变的,相当于 java里用 final修饰的变量 
    val i = 1 
    // 使用 var定义的变量是可变得,在 Scala中鼓励使用 val 
    var s = "hello" 
    //Scala 编译器会自动推断变量的类型,必要的时候可以指定类型 
    // 变量名在前,类型在后     
    val str: String = "spark" 
  } 
} 

总结:
1)数据类型可以指定,也可以不指定,如果不指定,那么就会进行数据类型的自动推断。
2)如果指定数据类型,数据类型的执行方式是在变量名后面写一个冒号,然后写上数据类 型。
3)我们的 scala 里面变量的修饰符一共有两个,一个是 var,一个是 val 如果是 var 修饰的变量,那么这个变量的值是可以修改的 如果是 val 修饰的变量,那么这个变量的值是不可以修改的
4)scala语言是懒加载的,这个和java还是有很大的区别的。

1.3、数据类型

1.3.1、数据类型概述

Scala 和 Java 一样,有 7 种数值类型 Byte、Char、Short、Int、Long、Float 和 Double(无包 装类型)和一个 Boolean 类型,再加上常用的 String 类型

数据类型:http://www.runoob.com/scala/scala-data-types.html 菜鸟教程

注意:scala 里面没有基本数据类型和包装类型之说。 如果大家非要说的话,那么大家都可以认为都有的类型的类型都是包装类型。
在这里插入图片描述

package com.mazh.scala.core 
 
object TypeDemo { 
 
  def main(args: Array[String]): Unit = { 
 
    val var_int = 1 
    val var_double = 3.33 
    val var_float = 2.4F 
    val var_char = 'A' 
    val var_bool = true 
 
    val var_16 = 0x29 
    val var_string = "aa" 
    val var_string1 = "\"huangbo\"" 
    val var_string2 = """hello\thello\na\t\\""" 
    println (var_string2) 
  } 
} 

在这里插入图片描述
要点:
1、 Any 是所有类的父类,包括值类型 AnyVal,和引用类型 AnyRef
2、 AnyVal 是所有值类型的父类,包括 Int,Double,Boolean,Unit 等等 3、 AnyRef 是所有引用类型的父类,包括 Null
4、 Null 是所有引用类型的子类
5、 Nothing 是所有类的子类
6、 Unit 类型只有一个实例,是(),相当于 java 中的 void,没有任何的实质意义
7、 Null 也只有一个实例,是 null,相当于 java 中的 null,能赋值给任何引用类型变量,不 能赋值给值类型变量

1.3.2、Scala 基本类型操作

算术操作:+   -   *   /   % 
关系运算:>   >=   <   <=   ==   != 
逻辑运算:&&   ||   ! 
位运算: &   |   ^   >>   <<  >>> 
对象比较:1==1   1==1.0   "huangbo" == "huangbo" 

2.1 Scala关键字

在这里插入图片描述

2.2 Scala定义函数

在这里插入图片描述
函数的意义:表示接受两个 Int 类型的变量,然后做累加。 经过 scala 的自动类型推断得知,最后返回的结果数据的类型也是 Int。 Function2 中 2 表示这个函数接收的参数个数是 2 个。

2.3 Scala定义方法

在这里插入图片描述在这里插入图片描述
方法的返回值类型可以不写,编译器可以自动推断出来,但是对于递归函数,必须指定返 回类型
注意:函数体应该改成叫方法体!!!如果不写等号,代表没有返回值

2.4方法和函数的区别

1、函数可以作为参数传递给方法,也就是说函数可以作为方法的参数 在函数式编程语言中,函数是“头等公民”,它可以像任何其他数据类型一样被传递和操作
案例:首先定义一个方法,再定义一个函数,然后将函数传递到方法里面
在这里插入图片描述
2、函数可以作为方法的参数,但是也可以作为函数的参数,例如:
在这里插入图片描述
3、方法也可以作为方法的参数。在需要传入函数作为参数的位置上传入一个方法的话,那 么这个方法会被自动的转换为函数作为参数,也可以通过“_”把方法转换为参数
在这里插入图片描述
今天先复习这么多,最近一直在做敏捷开发,说白了就是加班加班加班,都没有什么时间学习总结,最近一直在写spark,所以先来复习一下scala,方便之后看spark的原码,最近一直用java写spark还是感觉没有scala好用,还是要多学习scala啊!
最后在这里说一句 武汉加油哦!! 我会回到武汉的!!

发布了52 篇原创文章 · 获赞 31 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_39361934/article/details/104132899
今日推荐