scala 入门(01)

大数据“火”的有段日子了,原来打算学习hadoop…… 后知道spark要比hadoop更牛, 故而转学spark。其原码为scala所写,为了更好的研究spark,故又开始学习scala.

将自己所学记录在此,不为点赞, 只为加深记忆,加深理解…不是都说写一遍等于读十遍嘛……

1、基本类型:

  

  Byte  8位有符号补码整数

  Short  16位有符号补码整数

  Int  32位有符号补码整数

  Long  64位有符号补码整数

  Char  16位无符号Unicode字符

  String  char序列

  Float  32位IEEE754单精度浮点数

  Double  64位IEEE754双精度浮点数

  Boolean  true or false

 

  如果熟悉Java,你后发现java的基本类型在scala中有同样的意思, 不同的是scala是首字母大写,这是由于scala 高度重用java类型的缘故(隐式转换)

2、变量定义:

  scala 有两种变量:val 及 var。

  val 类似与java中的final ,一旦初始化,就不能再被赋值。

  var 则类似java中的非final变量,在它的生命周期中可以被多次赋值。

  

  在java中,各种类型是固定的,  int型是int型, String 是 String, 是什么类型就是什么类型,除非显示转换。

  而Scala 中在定义变量时可以之用val 及 var ,因为其有类型推断的能力。

  如: val msg = "123", 则Scala解释器自动推断类型为String;

    val msg = 123 则为Int;

  

  另外Scala中写明类型标注,这样可以确保编译器使用自己想要的类型, 其与java中不同之处在于 Scala的变量类型写在其名称之后,中间用冒号分隔,如:

    val msg :java.lang.String = "123";

    也可以写成

    val msg : String = "123";

3、函数定义:

  Scala中函数定义用 def 关键字,然后是函数名称。如:

  def max(x : Int, y : Int) : Int = {

    if(x>y)

      x;

    else

      y;

  }

  

  上列中:max为函数名, x,y为参数,类型为Int型, 最后一个Int标识函数返回值类型,{}中部分为方法体;

  Scala与java一个 重要的区别是返回值, 在java中必须显式的用return 关键字,但在Scala中可以用显示的用return标识返回类型, 也可省略,这时最后执行的一行就为返回值。 Scala中返回值类型可以不加编译器可以自动推断它,但递归函数必须加。

  java中函数没有返回值时用void ,scala中则为Unit。

4、数组(Array)

  

  scala中数组定义如下:

    val greetStrings = new Array[String](5);

    此句表达式定义了一个 名为greetStrings,类型为String,初始长度为5的数组;

  与java不同的是在使用数组中元素时 scale用圆括号,java用方括号。如:

    Java:  greetString[0] = “hello”;  

    Scala: greetString(0) = “hello”;

5、控制结构:

  1) if表达式

    scala 与其它语言的不同之外在于 scala的if 是可以有返回值的。如:

    val res =

       if(!args.isEmpty)  args(0);

       else "default";

    其它用法同其它语言一样

  2) while表达式:

    与其它语言基本相同。

  3) for 表达式:

    用法如下

    for(arg <- args) {

      Println(arg);

    }

  4) foreach

    args.foreach(arg => println(arg));   由于此时没写明arg的类型, 由解释器自动推断

    亦可明确元素类型,如:

      args.foreach((arg : String) => println(arg));

  今天就先进行到这里了, 明天继续…

时间: 2024-10-11 05:22:19

scala 入门(01)的相关文章

Scala课程01

Scala课程01 简介 由于本人刚毕业,也是从事软件开发相关的工作.想再学习一下关于大数据.移动互联网.云计算相关的技术.为我的未来打好基础.并且从零开始学习大数据相关的知识,脚踏实地的走好每一步,听行业前辈说毕业生刚工作的三年是非常关键的,所有我每天抽出一点时间学习大数据相关知识, 也算是给我我未来买一份保险吧!也有从事大数据相关的工作的打算,也是未来规划的一部分吧!少年! 关于Scala介绍 Scala首先是一门编程语言,并且非常纯粹的面向对象编程语言,语法也非常简洁,相对java.Sca

Scala学习01 环境安装

Scala是一门运行在jvm上的多范式语言,作为一个java程序员,使用Scala来写写程序,既不用担心会没有java强大的库支持,又能快速地写出简短强悍的代码,除此之外scala还为我们提供了强大的并发支持,Let's love it! 安装 下面来看看如何安装它(在此之前,确保已经安装好了jdk,我使用的jdk1.7). 我们可以通过Scala的官网(http://www.scala-lang.org/download/)来下载Scala.我使用的版本是2.11.1. 将安装包下载在本地之后

第一课 Scala入门与实战笔记总结

第一课:Scala入门 1:Scala的重大价值 2:Scala基础函数入门实战 3:Scala函数入门实战 4:Scala中的Array,Map,Tuple实战 5:综合案例及Spark源码解析 Scala与Java的关系: 一:它们都是基于JVM的,但Scala可以调用Java的任何功能,比如Spark运行在Hadoop上,它可以调用Hadoop上的一切功能. 二:你可以认为Scala它是一个升级版的Java,因为Scala它本身是一门支持面向对象的语言,在Scala中,一切皆对象,它是一门

scala 入门Eclipse环境搭建及第一个入门经典程序HelloWorld

IDE选择并下载: scala for eclipse 下载: http://scala-ide.org/download/sdk.html 根据自己的机器配置选择合适的IDE: 我这里选择For scala2.11 版本的Windows 32 bit的IDE,单击即下载. scala安装: 安装包下载地址,进入官网:http://www.scala-lang.org/ 进入DOWNLOAD下,选择scala 2.11 版本,单击下载: Windows上安装scala 2.11: 单击运行sca

Scala入门到精通——第三十节 Scala脚本编程与结束语

本节主要内容 REPL命令行高级使用 使用Scala进行Linux脚本编程 结束语 1. REPL命令行高级使用 在使用REPL命令行时,有时候我们需要粘贴的代码比较大,而普通的粘贴可能会些一些问题,比如中文粘贴会出现乱码.多行代码粘贴时会出错,此时需要用到REPL的高级功能.在日常开发过程中,我们粘贴多行代码的时候会遇到下列问题: //本意是要粘贴下面两行代码 class Person(val name:String,val age:Int) val p=new Person("摇摆少年梦&q

JavaScript基础入门 - 01

JavaScript入门 - 01 准备工作 在正式的学习JavaScript之前,我们先来学习一些小工具,帮助我们更好的学习和理解后面的内容. js代码位置 首先是如何编写JavaScript代码,说到这,我们首先要来说明一个需要新人们关注的点,因为我们的js是一门跨平台的语言,所以说,我们的代码可以运行在不同的平台之上.这也就导致了可能相同的代码放在不同的平台运行就会有所出入. 这里面说的平台其实被称之为宿主环境. 同时,代码在不同的平台上的运行方式也有所不同. 如果运行在服务端,那么更多的

Scala基础01:语法基础入门

Scala REPL res1,res2,... res5等分别表示输出结果.若一次计算输出的结果被标识为res2,那么在之后的调用中,可以直接使用res2. 例: Scala IDE 中的 Scala WorkSheek 这是Scala IDE提供的非常有用的功能.其功能就相当于Scala REPL.可以动态的将结果显示出来. 输入输出 输出通常使用print或println函数. 输入通常使用read函数. readLine是从控制台读取一行输入.指定类型时为readT,T是所要指定的类型,

Scala入门到精通——第十五节 Case Class与模式匹配(二)

本节主要内容 模式匹配的类型 for控制结构中的模式匹配 option类型模式匹配 1. 模式的类型 1 常量模式 object ConstantPattern{ def main(args: Array[String]): Unit = { //注意,下面定义的是一个函数 //函数的返回值利用的是模式匹配后的结果作为其返回值 //还需要注意的是函数定义在main方法中 //也即scala语言可以在一个函数中定义另外一个函数 def patternShow(x:Any)=x match { ca

scala入门学习之表达式

如果你按照上一篇将每一个代码都亲自敲了一遍的时候,我想你已经对scala有一定的感觉,你会发现它很好用,也很人性化,同时也很灵活,一个语言如果特别的灵活就会很难学习,所以坚持,继续学习. 这一篇我们学习表达式的内容,在上一篇我们其实已经用了一个foreach,下面直接上代码: //条件表达式    println("表达式:if")    val x=1    val a=if(x>0) 1 else 0    println(a)        println("表达