zoukankan      html  css  js  c++  java
  • scala基础--01

    scala语言很简洁,让人看起来很舒服的感觉,例如查看字符串中是否存在大写字符,

    val nameHasUpper=name.exist(_.isUpperCase)一句话就解决。

    例如wordcount

    val rdd=sc.textFile("").filter(_.split(" ")).map(x=>(x(1),1)).reduceByKey(_+_).map(x=>(x._2,x._1)).sortByKey(false).map(x=>(x._2,x._1))

    1 定义

    scala 中定义变量用var,定义常量用val。

    定义方法:def function(){}

    带有返回值类型的方法 def function(a:Int,b:Int):Int={}

    2 注意点

    scala区分大小写

    所有类名第一个字母大写

    所有方法名称第一个字母小写

    程序文件名与该对象名称完全匹配

    Thread 的 yield 方法, 在 Scala 中你不能使用 Thread.yield()是因为 yield 为 Scala 中的关键字, 你必须使用 Thread.`yield`()来使用这个方法。

    3 伴生对象与伴生类

    伴生对象与伴生类本质上时不同的两个类,伴生类和伴生对象之间可以相互访问到对方的成员变量,包括私有的成员变量和方法。

    4 scala元组tuple

    tuple和List一样,定义了里面的元素是不可变的,与List不同的是tuple可以包含不同的类型的元素。

    如果需要在方法中返回多个对象时,Java通常是创建javabean,scala可以返回元祖

    val pair=(10,"today",false)

    println(pair._1)

    5 scala集合可以分为可变集合(scala.collection.mutable)与不可变集合(scala.collection.immutable)

    默认是使用不可变集合,因此如果需要使用可变集合需要导入可变集合的包

    import scala.collection.mutable.Map

    val tremap=Map[Int,String]()

     treamap+=(1->"sdfa")
     treamap+=(2->"aaa")
     treamap+=(3->"ssss")
     println(treamap(2))
     
    6 scala I/O
    scala I/O更多的调用java中的I/O类或者是通过对Java的I/O进行封住实现I/O
    val fileWriter=new FileWriter("")
    fileWriter.write("")
    fileWriter.flush()
    fileWriter.close()
     
    从文件里读取文本行
    import scala.io.Source
     
    if(args.length>0) {
      for (line <- Source.fromFile(args(0)).getLines)
        print(line.length + " " + line)
    }
      else
         Console.err.println("filenamber")
     
    7 scala基本数据结构
    根类Any分为AnyVal 和AnyRef
    AnyVal 包括了Boolean,Byte ,Short,Int,Long,Char,Double,Float,Unit九大类
    AnyRef包括了String,集合类Iterable:Seq,List
    Null处于AnyRef类的底层
    Nothing是所有类的子类,一般用于指示程序返回非正常结果,利用Nothing作为返回值可以增加程序灵活性
    Any类包含了基本的五个方法,==,!=,equals(),hashCode()和toString
  • 相关阅读:
    jenkins 简单实现php集成上线部署
    关于PHP7
    关于版本迭代的那些事
    confirmit中手机端不能直接给input设置disabled属性
    confirmit中Html Styles有一处bug(或者说是一个坑)
    vsCode快捷键大全
    vscode打不开文件夹或文件夹未响应
    js中排序方法sort() 和 reverse()
    js最简单的编写地点
    js对象转换为json格式时,js对象属性中有值为null和undefined注意事项
  • 原文地址:https://www.cnblogs.com/sunt9/p/6760606.html
Copyright © 2011-2022 走看看