`
knight_black_bob
  • 浏览: 824992 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

scala 基础入门

阅读更多

 

scala 安装入门

http://knight-black-bob.iteye.com/blog/2286188

 

helloworld

package com.baoy.cn.demo

 object   Hello { 
  def main(args: Array[String]){
    println("hello world")
  }
}

 

 类对象

package com.baoy.cn.demo

trait Equals {
   def isEqual(x: Any): Boolean
   def isNotEqual(x: Any): Boolean = !isEqual(x)
}

 

package com.baoy.cn.demo

class Student(val name: String, val password: String) extends Equals{
  var xname: String = name
  var xpassword: String = password

  def toString1(): Unit = {
    println("Strudent:[name:" + xname + ",password:" + xpassword + "]")
  }

  override def toString(): String = {
    "Strudent:[name:" + xname + ",password:" + xpassword + "]"
  }

   def isEqual(obj: Any) ={
    obj.isInstanceOf[Student] &&
    obj.asInstanceOf[Student].xname == xname
  }
  
}

object Student {
  def main(args: Array[String]): Unit = {
    val stu = new Student("baoyou", "123456")
    stu.toString1()
    println(stu.toString())
    
    val stu2 = new Student("baoyou", "1234567")
    
    val bool = stu2.isEqual(stu)
    println(bool)
  }
}

 

for

package com.baoy.cn.demo

class ForDemo {
   
 
}

object ForDemo{
  def main(args: Array[String]){
    println("-------------------------------- i <- 0 to 9")
    var result = ""
    for (i <- 0 to 9) {
      result += i + " "
    }
    println(result)
    println("-------------------------------- i <- 0 until 10")
    result = ""
    for (i <- 0 until 10) {
      result += i + " "
    }
    println(result)
    println("-------------------------------- i <- Range(0, 10)")
    result = ""
    for (i <- Range(0, 10)) {
      result += i + " "
    }
    println(result)
    println("-------------------------------- i <- Range(0, 20, 2)")
    result = ""
    for (i <- Range(0, 20, 2)) {
      result += i + " "
    }
    println(result) 
  }
}

 

vector

package com.baoy.cn.demo

class VectorDemo {

}

object VectorDemo {
  def main(args: Array[String]) {
       val v1= Vector(1,2,3,4,5)
       println(v1)
       var result = ""
       for(i <- v1 ){
         result += i + " "
       }
       println(result)
       val v2 = v1.reverse
       println(v2)
       
       var v3 = v2.sorted
       println(v3)
       
  }
}

 

collection

package com.baoy.cn.demo
 

class CollectionDemo {

}

object CollectionDemo {
  def main(args: Array[String]): Unit = {
    //1 . List
    // List of Strings
    val fruit: List[String] = List(  "oranges", "pears","apples")

    // List of Integers
    val nums: List[Int] = List(1, 2, 3, 4)

    // Empty List.
    val empty: List[Nothing] = List()

    // Two dimensional list
    val dim: List[List[Int]] =
      List(
        List(1, 0, 0),
        List(0, 1, 0),
        List(0, 0, 1))

    // List of Strings
    val fruit2 = "apples" :: ("oranges" :: ("pears" :: Nil))

    // List of Integers
    val nums2 = 1 :: (2 :: (3 :: (4 :: Nil)))

    // Empty List.
    val empty2 = Nil

    // Two dimensional list
    val dim2 = (1 :: (0 :: (0 :: Nil))) ::
      (0 :: (1 :: (0 :: Nil))) ::
      (0 :: (0 :: (1 :: Nil))) :: Nil

      
      for( i <- 0 to fruit.length -1 ){
        print (fruit.apply(i) + " ")
      }
      println()
      fruit.foreach { x => print(x +" ") }
      println()
      println(fruit.contains("oranges"))
      val it = fruit.toIterator
      while (it.hasNext) {
        print(it.next() + " ")
      }
      println()
      println(fruit.mkString(","))
      
      val fruit3 = fruit.sortWith(_.compareTo(_) < 0)
      fruit3.map { s => print(s + " ") }
    }
}

 

yield

package com.baoy.cn.demo

import scala.collection.immutable.Vector

class YieldDemo {
  
}
object YieldDemo{
  def main(args: Array[String]): Unit = {
 
    val v= Vector(1,2,3,4,5,6,7,8,9,10,11,12,13,14,17)
    val v1 = yielding(v);
    println(v1)
     val v2 = evenGT5(v)
     println(v2)
  }
  
  def yielding( v : Vector[Int] ): Vector[Int] = {
    val result = for{
      n <- v 
      if n < 10
      if n %2 != 0
    } yield {n} // yield 交出 n
    result
  }
  
  def evenGT5( v : Vector[Int] ): Vector[Int] = {
     var result = Vector[Int]()
     for{
      n <- v 
      if n < 10
      if n %2 == 0
    }    result = result :+ n  
    result
  }
  
}

 

split

package com.baoy.cn.demo
 

class SplitDemo {
  
  def apply(userId:String ,domain:String)  = {
     userId +"@"+ domain
  }
  
  def unapply(str: String): Option[(String, String)] = {
      val parts = str split "@"
      if (parts.length == 2){
         Some(parts(0), parts(1)) 
      }else{
         None
      }
   }
  
  def show(x: Option[String]) = x match {
      case Some(s) => s 
      case None => "?"
   }
  
  
}
object SplitDemo{
  def main(args: Array[String]): Unit = {
    val sd = new SplitDemo().apply("curiousby","163.com")
    val sdd = new SplitDemo().unapply(sd) 
    println(sdd.isEmpty) 
    
    val it = sdd.iterator
    while (it.hasNext){
         println(it.next()._1)
      }
    
    /* val n = sdd.map{ n => n }
    println(n)*/
    
    println( Some("1","2","3","4","5").iterator.next()._5)
    
    
    
    
  }
}

 

map reduce foreach

package com.baoy.cn.demo

import scala.collection.immutable.Vector
 
object MapReduceForeachDemo {
  def main(args: Array[String]): Unit = {
   val v =Vector(1,2,3,4)
    println(v)
   val v2 =  v.map{ n => n+1 }
   println(v2)
   
  var  sum =0  
  v2.foreach(x => sum += x)
  println(sum)
   
  
  val sum2 = v2.reduce((sum2,n) => sum + n)
  println(sum) 
  
  }
}

class MapReduceForeachDemo{
  
}

 

regex

package com.baoy.cn.demo

import scala.util.matching.Regex

class RegexDemo {
  
}

object RegexDemo{
  def main(args: Array[String]): Unit = {
      val pattern = new Regex("(S|s)cala")
      val str = "Scala is scalable and cool"
      var string = pattern findFirstIn str
      println(string )
      
      var string2 = pattern findAllIn str
      println(string2)
      
      var string3 =string2.mkString(",")
      println(string3)
      
  }
}

 

File

package com.baoy.cn.demo

import scala.io.Source
import java.io.PrintWriter
import java.io.File

class FileDemo {

}

object FileDemo {
  def main(args: Array[String]): Unit = {

    val wstr = Console.readLine()
    //println(wstr)

    val writer = new PrintWriter(new File("C:\\Users\\cmcc-B100036\\Desktop\\test.txt"))
    writer.write(wstr)
    writer.close()

    Source.fromFile("C:\\Users\\cmcc-B100036\\Desktop\\test.txt").foreach {
      print
    }
  }
}

 

abstract

package com.baoy.cn.mabstract
 

abstract class Cat   {
  def color():Unit
}

object Cat{
  def main(args: Array[String]): Unit = {
    val cat1 = new Garfield()
    val cat2 = new Doraemon()
    cat1.color()
    cat2.color()
  }
}




package com.baoy.cn.mabstract

class Doraemon extends Cat{
  def color():Unit={
    print("blue")
  }
}




package com.baoy.cn.mabstract

class Garfield extends Cat{
  
  def color():Unit = {
    println("brown")
  }
}

 

 enumeration

package com.baoy.cn.demo
 
class Level{
 
}

object Level extends Enumeration{
  type Level = Value
  val overflow ,high,medium,low,empty = Value
  
  def main(args: Array[String]): Unit = {
    val v =  {
      for(n <- Range(0,Level.maxId))
      yield (n,Level(n)) 
      }
    
    println(v) 
    
    checkLevel(overflow)
    
     val v2=  {
      for(lev <- Level.values)
      yield lev 
      }
    print(v2.toIndexedSeq)
  }
   def checkLevel(level:Level)= level match  {
    case overflow => println("overflow --- ")
    case high => println("high --- ")
    case medium => println("medium --- ")
    case low => println("low --- ")
    case empty => println("empty --- ")
  }
}


 

 scala  隐式转换

package com.baoy.cn.demo

class Implicit{
  
}

class A{
   def a{
    println("so a......")
  }
}

class RichA(a:A){
  def rich{
    println("so rich......")
  }
}

object Implicit { 
	
  def main(args: Array[String]): Unit = {
		implicit def a2RichA(a: A) = new RichA(a)
    val a = new A
    a.rich
    a.a
    
    val b = new RichA( new A)
    b.rich
  
   def testParam(implicit name: String){
    println(name)
   }
  
  implicit val name = "implicited"
  
  testParam
  }
  
  
  
  
   
}

 

 

 

 

 

 

 

 

 

 

 

 

捐助开发者

在兴趣的驱动下,写一个免费的东西,有欣喜,也还有汗水,希望你喜欢我的作品,同时也能支持一下。 当然,有钱捧个钱场(右上角的爱心标志,支持支付宝和PayPal捐助),没钱捧个人场,谢谢各位。



 
 
 谢谢您的赞助,我会做的更好!

 

 

 

 

0
4
分享到:
评论

相关推荐

    Scala基础入门

    在教学工作中,总结出的,为会让一个初学者快速入门Scala语言编程的文档,文档中有简介和代码示例,亲自测试皆可顺利运行。

    Scala语言入门

    Scala语言入门

    scala编程入门教材

    本文档是scala的入门学习教材,主要是scala的编程基础和语法

    Scala语法入门.pdf

    Scala语法入门.pdf

    scala从入门到精通技术教学视频

    11.列表的常用操作之基础操作 12.列表的常用操作之扁平化 13.列表的常用操作之拉链与拉开 14.列表的常用操作之转换字符串 15.列表的常用操作之求并集,交集,差集 16.创建不可变集 17.不可变集的常见操作 18....

    Scala 基础.pdf

    scala基础文档,专门为计算而生的语言,Scala将(Java后者C++)面向对象设计和 函数式编程 结合在一起的简洁的高级编程语言。而 函数式编程强调的是通过传递算子(代码|函数)实现大规模数据集的本地计算。Scala虽然是...

    SCALA从入门到精通个人笔记含代码

    Scala简介&快速入门 基础语法 变量 数据类型 流程控制 操作符重载 模式匹配 函数式编程基础 函数式编程说明 函数定义/声明 函数运行机制 递归 函数注意事项和细节 过程 惰性函数和异常 面向对象编程初级...

    scala从入门到进阶

    1、本文档主要讲述了scala从基础到进阶的内容。2、内容全面,例程到位,适合初学者学习。

    Scala编程中文版(33章全)

    spark-Scala编程中文版(33章全).pdf,scala基础入门学习资料

    Scala快速入门(适合为学Spark学习Scala的同学)

    scala安装使用、scala基础、scala方法与函数、scala tuple/集合/list/字符串/set/map、、trait特性、模式匹配、隐式转换、样例类、actorModal

    价值上万的视频教程互联网程序开发+大数据+Hadoop、hive、Spark

    · Scala基础入门 · 函数式编程 · 数据结构 · 面向对象编程 · 模式匹配 · 高阶函数 · 特质 · 注解&类型参数 · 隐式转换 · 高级类型 · 案例实操 Spark Core · 安装部署 · RDD概述 · 编程...

    为Java程序员编写的Scala的入门教程

    本文是《A Scala Tutorial for Java programmers》英文的翻译. 本文仅在对Scala语言和其编译器进行简要介绍。本文的目的读者是那些已经具有...要阅读本文,你应当具有基础的面向对象编程的概念,尤其 是Java语言的。

    Scala语言基础|零基础入门.pptx

    Scala语言基础new.pptx,希望大家能够喜欢,

    Scala编程语言详解(从入门到精通)spark

    Scala编程语言详解(从入门到精通)。Scala语言详解doc文档。Scala是面向对象的;Scala是静态类型的;Scala是可扩展的。为学习Spark奠定基础

    scala入门书籍

    Scala编程语言抓住了很多开发者的眼球。如果你粗略浏览Scala的网站,你会觉得Scala是一种纯粹的面向对象编程语言,而又无缝地结合了命令式编程和函数式编程风格。Christopher Diggins认为: 不太久之前编程语言还...

    Scala编程实战.zip

    此文档是讲解实战Scala,希望对喜欢大数据的同学有所帮助!!! 学习Scala语言,不仅仅意味着熟悉新的API,更重要的是...对于Scala新手来说这是一本不错的入门书,对于老手来说也是一本夯实基础,检视自己所学知识的好书。

    scala编程基础

    本文详细介绍了scala编程的基础,是入门的好文档。。。

    scala编程入门

    本文详细介绍了scala入门的知识,如果你的目的是掌握些基础,这是很不错的

    scala基础语法

    本文详细的介绍了scala的基础语法,如果你是一个入门者有没有一个很好的资料为建议你下载

    Scala编程详解 第21讲-Scala编程详解:Actor入门 共8页.pptx

    第3讲-Scala编程详解:基础语法 共8页 第4讲-Scala编程详解:条件控制与循环 共7页 第5讲-Scala编程详解:函数入门 共5页 第6讲-Scala编程详解:函数入门之默认参数和带名参数 共5页 第7讲-Scala编程详解:函数入门...

Global site tag (gtag.js) - Google Analytics