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捐助),没钱捧个人场,谢谢各位。
谢谢您的赞助,我会做的更好!
相关推荐
在教学工作中,总结出的,为会让一个初学者快速入门Scala语言编程的文档,文档中有简介和代码示例,亲自测试皆可顺利运行。
Scala语言入门
本文档是scala的入门学习教材,主要是scala的编程基础和语法
Scala语法入门.pdf
11.列表的常用操作之基础操作 12.列表的常用操作之扁平化 13.列表的常用操作之拉链与拉开 14.列表的常用操作之转换字符串 15.列表的常用操作之求并集,交集,差集 16.创建不可变集 17.不可变集的常见操作 18....
scala基础文档,专门为计算而生的语言,Scala将(Java后者C++)面向对象设计和 函数式编程 结合在一起的简洁的高级编程语言。而 函数式编程强调的是通过传递算子(代码|函数)实现大规模数据集的本地计算。Scala虽然是...
Scala简介&快速入门 基础语法 变量 数据类型 流程控制 操作符重载 模式匹配 函数式编程基础 函数式编程说明 函数定义/声明 函数运行机制 递归 函数注意事项和细节 过程 惰性函数和异常 面向对象编程初级...
1、本文档主要讲述了scala从基础到进阶的内容。2、内容全面,例程到位,适合初学者学习。
spark-Scala编程中文版(33章全).pdf,scala基础入门学习资料
scala安装使用、scala基础、scala方法与函数、scala tuple/集合/list/字符串/set/map、、trait特性、模式匹配、隐式转换、样例类、actorModal
· Scala基础入门 · 函数式编程 · 数据结构 · 面向对象编程 · 模式匹配 · 高阶函数 · 特质 · 注解&类型参数 · 隐式转换 · 高级类型 · 案例实操 Spark Core · 安装部署 · RDD概述 · 编程...
本文是《A Scala Tutorial for Java programmers》英文的翻译. 本文仅在对Scala语言和其编译器进行简要介绍。本文的目的读者是那些已经具有...要阅读本文,你应当具有基础的面向对象编程的概念,尤其 是Java语言的。
Scala语言基础new.pptx,希望大家能够喜欢,
Scala编程语言详解(从入门到精通)。Scala语言详解doc文档。Scala是面向对象的;Scala是静态类型的;Scala是可扩展的。为学习Spark奠定基础
Scala编程语言抓住了很多开发者的眼球。如果你粗略浏览Scala的网站,你会觉得Scala是一种纯粹的面向对象编程语言,而又无缝地结合了命令式编程和函数式编程风格。Christopher Diggins认为: 不太久之前编程语言还...
此文档是讲解实战Scala,希望对喜欢大数据的同学有所帮助!!! 学习Scala语言,不仅仅意味着熟悉新的API,更重要的是...对于Scala新手来说这是一本不错的入门书,对于老手来说也是一本夯实基础,检视自己所学知识的好书。
本文详细介绍了scala编程的基础,是入门的好文档。。。
本文详细介绍了scala入门的知识,如果你的目的是掌握些基础,这是很不错的
本文详细的介绍了scala的基础语法,如果你是一个入门者有没有一个很好的资料为建议你下载
第3讲-Scala编程详解:基础语法 共8页 第4讲-Scala编程详解:条件控制与循环 共7页 第5讲-Scala编程详解:函数入门 共5页 第6讲-Scala编程详解:函数入门之默认参数和带名参数 共5页 第7讲-Scala编程详解:函数入门...