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
  • 相关阅读:
    V-Ray Material Library材质名称翻译
    3dMax常用快捷键
    3dMax笔记(韵湖)
    background-size拉伸背景图片
    CSS实现子元素水平垂直居中的6种方式
    JS简易实现“最小栈”
    JS种Array原型方法reverse的模拟实现
    JS数组去重的3种方式
    encodeURIComponent和encodeURI有什么区别
    CSS中的度量单位(px/em/rem/vm/vh/...)
  • 原文地址:https://www.cnblogs.com/sunt9/p/6760606.html
Copyright © 2011-2022 走看看