SCALA - 技术教程文章
Scala之Future【代码】
一、简介Future提供了一套高效便捷的非阻塞并行操作管理方案。其基本思想很简单,所谓Future,指的是一类占位符对象,用于指代某些尚未完成的计算的结果。一般来说,由Future指代的计算都是并行执行的,计算完毕后可另行获取相关计算结果。以这种方式组织并行任务,便可以写出高效、异步、非阻塞的并行代码。所谓Future,是一种用于指代某个尚未就绪的值的对象。而这个值,往往是某个计算过程的结果:(1)若该计算过程尚未完成,我...
scala的多种集合的使用(6)之映射Map的操作方法【代码】
1.创建映射1)创建不可变的映射scala> val status = Map(1 -> "a",2 -> "b") status: scala.collection.immutable.Map[Int,String] = Map(1 -> a, 2 -> b)scala> val status = Map((1,"a"),(2,"b")) status: scala.collection.immutable.Map[Int,String] = Map(1 -> a, 2 -> b)2)创建可变的映射,要么用导入的方式将其带入作用域中,要么就在创建实例时指定scala.collection.mutable.Map类的完整路径。scala> var status = collecti...
强制使scala函数产生“副作用”【代码】
1//2 def swap(arr:Array[Int],a:Int,b:Int)={3 val tmp = arr(a)4 arr(a)=arr(b)5 arr(b)=tmp6 }7 def shuffle(arr:Array[Int])={8 val t = new Random()9for(i <- (1 to arr.length-1).toArray.reverse) 10 swap(arr,i,t.nextInt(i+1)) 11 } 原文:http://www.cnblogs.com/xiaocun/p/5531457.html
win7 下面如何搭建Scala ——Eclipse开发环境【图】
言归正传,下面就是搭建开发环境步骤:因为scala是JVM上的语言,所以我们首先要安装Java运行环境。从oracle官网下载安装了jdk8。注意,scala只需要java的运行环境,也就是只需要安装:jre,但是为了方便以后java开发,我们还是安装java的开发环境。安装完成之后设置环境变量,如例:12JAVA_HOME = E:\Java\jdk1.8.0_20PATH = %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;$PATH PATH中 %JAVA_HOME%\jre\bin ,这个才是scala想要使用的运行...
《OD学spark》20160924scala基础
拓展:Hadoop 3.0NameNode HANameNode是ActiveNameNode是Standby可以有多个HBaseCluster单节点故障?HBaster -> BackMasterHRegionServerWEBUI 60010 Spark 课程安排分为两个部分: 第一部分:基础篇 SCALA:1天 SparkCore:2天 - MapReduce SparkSQL:1天 - Hive Shark = Hive on Spark 关键,企业中必用的,必须掌握 SparkStreaming:1天 - Storm DStream 企业实时数据统计分析 Spark 2.0 StructureStreamin...
Scala--操作符【代码】
一、标识符 二、中置操作符中置表达式,操作符位于两个参数之间1 to 101.to(10)1 -> 101.->(10) 三、一元操作符a.标识符()1 toString1.toString()+、-、!、~ 可以作为前置操作符,转换成名为 unary_操作符 的方法调用-a 和 a.unary_- 一样 四、赋值操作符a+=b a = a + b 五、优先级+ ->优先级相同 中置操作符高于后置操作符a 中置操作符 b 后置操作符 等同于(a 中置操作符 b) 后置操作符 六、结合性所有操作符都是左结合的,...
Scala_修饰符【代码】
Scala访问修饰符和Java基本一样,分别有private、protected、public。默认缺省情况下,Scala对象的访问级别是public。私有成员:用private关键字修饰的成员仅在包含了成员定义的类内部或对象内部可见。Java中允许这两种访问,它允许外部类访问内部类的私有成员。 1class test{}class Outer{2class Inner{3private def p(){4 println( "p")5 }6class InnerMost{7 p() //正确 8 }9 } 10//(...
2020寒假 学习进度笔记5:IntelliJ IDEA安装配置及编写spark应用程序(scala+maven)【代码】【图】
教程:http://dblab.xmu.edu.cn/blog/1327 安装IntelliJ IDEA官网:https://www.jetbrains.com/idea/download/#section=linuxcd ~/下载 sudo tar -zxvf ideaIC-2019.3.2.tar.gz sudo mv idea-IC-193.6015.39 /usr/local/Intellij 打开程序cd /usr/local/Intellij/bin ./idea.sh弹出以下界面在IntelliJ IDEA里安装scala插件可以看到它已经自动安装了配置JDK 配置全局scala sdk 右键刚添加的SDK 创建maven工程文件maven -> next填...
快学Scala习题解答—第八章 继承【图】
8 继承 8.1 扩展如下的BankAccount类,新类CheckingAccount对每次存款和取款都收取1美元的手续费class BankAccount(initialBalance:Double){ private var balance = initialBalance def deposit(amount:Double) = { balance += amount; balance} def withdraw(amount:Double) = {balance -= amount; balance} } 继承语法的使用。代码如下 Scala代码 class CheckingAccount(initialBalance:Double) extends BankAc...
IDEA创建Scala项目【代码】【图】
一、安装插件 见Scala入门篇二、新建项目选择new project,其中SBT相当于精简版的maven,其他的待补充。这里选择IDEA填写信息,选择Scala SDK在src目录下新建Scala Class,类型可以选择Class——普通类、Object——静态的、Trait——特指的,相当于接口,这里选择Object在类中输入main,回车产生main方法(Scala快捷键将补充快捷键大全)object ScalaDemo { def main(args: Array[String]): Unit = { println("Hello Scala!...
scala实现快速排序【代码】
scala> def qSort(a: List[Int]): List[Int] = {| if (a.length < 2 ) a| else qSort( a.filter(a.head > _ )) ++| a.filter(a.head == _ ) ++| qSort(a.filter(a.head < _ ))| } qSort: (a: List[Int])List[Int]scala>scala> qSort(List(8,5,6,4,3,9,11,1)) res25: List[Int] = List(1, 3, 4, 5, 6, 8, 9, 11)这是函数式编程的一个优点,代码简洁明了。原文:http://www.cnblogs.com/xitangjuanjuan/p/5356047.html
scala-第六章-Rational【代码】
涉及到的知识点: 检查先决条件。函数重载。操作符重载。控制台输入。私有函数。隐式转换。<pre name="code" class="java">import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintStream; import java.io.PrintWriter; import java.math.BigDecimal; class Rational(n:Int, d:Int){require(d != 0);//检查先决...
Scala 深入浅出实战经典 第92讲:Akka第一个案例动手实战开发环境的搭建
在intellij idea上搭建akka开发。使用idea的原因:没有必要花时间学配置;使用idea后会越使用越自然,越用越智能。在maven,sbt上支持更好。maven的一些功能介绍,maven还是用得比较多。范例word count代码的简单讲解。DT大数据梦工厂微信公众账号:DT_Spark。DT大数据梦工厂的微信公众号是DT_Spark,每天都会有大数据实战视频发布,请您持续学习。王家林DT大数据梦工厂scala的所有视频、PPT和代码在百度云盘的链接:http://pan.bai...
scala入门学习之类的使用
时间比较紧,所以直接上代码,解释在代码中:/** * @author hnyd */class HelloClass { }//scala 中都是public类class Person{ //不带构造函数函数的 var name:String=_ //会生成getter和setter val age=10 //只会生成getter //添加private[this]声明的变量,只能在类的内部使用 private[this] val gendar="male" }//这是一个主构造器//1、定义一个主构造器后,其颞部声明的变量,会生成相应的字段//2、类中...
scala中的view bound与context bound【代码】【图】
1.scala中的<%意识是“view bounds”(视界) ,它比<:的使用范围更广,还能进行隐式转换,是一种语法糖。下面的两种写法是等效的,在编译之后完全一样。object Test {def main(args: Array[String]) {}def method1[A<% Int](a:Int): Unit ={}def method2[A](a:Int)(implicit b:A=>Int): Unit ={}}View Code其中的Function1的定义如下2.与view bounds一样context bounds(上下文界定)也是隐式参数的语法糖object Test {def main(args:...
Scala学习笔记(二):运行脚本文件【代码】
在某个目录(如:F:\)下新建一个文本文件,命名为:hello.scala其内容为:println("Hello World!") 那么这个时候该怎么运行这个脚本文件呢? 通过Windows的命令行窗口进入到Scala的安装目录下的bin目录下输入“scala F:\hello.scala”,然后回车即可正确运行 请参考此文: scala在cmd模式下执行文件报<console>:1: error: ‘;‘ expected but ‘.‘ found. scalac C:\hello.scala 错误http://blog.csdn.net/wangmuming/article/det...
scala简要——类与对象
类在scala中,类并不声明为public,源文件可以包含多个类,所有这些类都具有共有可见性。对每个字段都提供了getter和setter方法,分别叫做 字段名 和 字段名_,可重新自定义。注意: 1)如果字段私有,则getter和setter也是私有的 2)如果字段val,则只有getter方法 3)如果不需任何getter和setter,可将字段声明为private[this]将scala字段标注为@BeanProperty时,会产生Java属性的定义方法getxxx和setxxx。scala中的类有一个主构造...
Scala Control Structures【代码】【图】
Scala之Control Structures一、前言 前面学习了Scala的Numbers,接着学习Scala的Control Structures(控制结构)。 二、Control Structures Scala中的控制结构与Java中的颇为类似,但也有所不同,例如,if/then/else控制结构与Java的类似,但是其可以返回值,虽然Java中有三元运算符的特殊语法,但是在Scala中使用if就可以达到同样的效果。 val x = if (a) y else z 同样,Scala的try/catch/finally 结构与Java的也类...
scala VS python2 操作shell对比例子【代码】
Scala:/*** Created by sunxu on 2015/9/30.*/import scala.sys.process._ import java.io.File//在相应目录执行shell命令,返回值赋值给变量 val exitValue = Process("hadoop jar pathread-analytics-0.0.1.jar com.duxiu.pathread.stcs.StcsByFieldJob /pathread/2015/10-08 /user/sunxu/test ssid 13671489", new File("/opt/users/sunxu/")).!println("--------------------------------------------------------")if (exitV...
Scala数据结构(二)【代码】【图】
一、集合的基础操作1,head头信息//获取集合的第一个元素 val list = List(1,3,5) list.head //12,tail尾信息//获取集合除去头元素之外的所有元素 val list = List(1,3,5) list.tail //List(3,5)3,last最后元素//获取集合的最后一个元素 val list = List(1,3,5) list.last //54,init初始化//获取集合除去最后一个元素的前面所有元素 val list = List(1,3,5) println(list.init) //List(1,3)5,reverse反转//集合反转 ...
Scala2.11.7学习笔记(五)类和对象基础知识【代码】
特质 Scala的trait 和Java 的Interface相比,可以有方法的实现。Scala的Trait支持类和Singleton对象和多个Trait混合(使用来自这些Trait中的 方法,而不时不违反单一继承的原则)。 Scala为Singleton对象的main定义了一个App trait类型,因此上面的例子可以简化为:HelloWorld.scala object HelloWorld extends App { println("Hello World!"); } 这段代码就不能作为脚本运行,Scala的脚本要求代码最后以表达式结束。...
Scala编程思想测试类AtomicTest.scala
Scala编程思想附录1的测试类。package com.atomicscalaimport language.implicitConversionsimport java.io.FileWriterclass AtomicTest[T](val target:T) { val errorLog = "_AtomicTestErrors.txt" def tst[E](expected:E)(test: => Boolean){ println(target) if(test == false) { val msg = "[Error] expected:\n" + expected println(msg) val el = new FileWriter(errorLog,true) el.wri...
Scala 深入浅出实战经典 第46讲: ClassTag 、Manifest、ClasMainifest TagType实战【代码】
王家林亲授《DT大数据梦工厂》大数据实战视频 Scala 深入浅出实战经典(1-64讲)完整视频、PPT、代码下载:百度云盘:http://pan.baidu.com/s/1c0noOt6 腾讯微云:http://url.cn/TnGbdC 360云盘:http://yunpan.cn/cQ4c2UALDjSKy 访问密码 45e2 技术爱好者尤其是大数据爱好者 可以加DT大数据梦工厂的qq群DT大数据梦工厂① :462923555 DT大数据梦工厂②:437123764 DT大数据梦工厂③ :418110145微信公众账号: DT_Spark王家林老师微...
Scala Tail Recursion (尾递归)【代码】
Scala对尾递归进行了优化,甚至提供了专门的标注告诉编译器需要进行尾递归优化。不过这种优化仅限于严格的尾递归,间接递归等情况,不会被优化。尾递归的概念递归,大家都不陌生,一个函数直接或间接的调用它自己,就是递归了。我们来看一个简单的,计算阶乘的例子。def factorial(n: Int): Int = {if( n <= 1 ) 1else n * factorial(n-1) } 以上factorial方法,在n>1时,需要调用它自身,这是一个典型的递归调用。如果n=5,那么该...
Scala-Unit5-Scala面对对象与模式匹配【代码】
Java中的面向对象:万物皆对象。 我们要封装数据,定义模板等操作,素以我们需要面向对象。=========================================================================一、Scala中的单例对象 在java中用static关键字修饰方法或成员变量,作用是可以直接通过"类名."的方式调用方法或变量 在Scala中没有static关键字,Scala给我们提供了单例对象的模式来实现,关键字是objectobject Person {//定义成员变量val name:Strin...
scala:主构造方法和辅助构造方法【代码】
@目录构造器(构造方法)Java中构造器Scala中构造器主构造方法辅助构造方法scala代码示例scala有参数的主构造方法构造器(构造方法)作用:构造对象初始化属性(给对象的属性赋值)Java中构造器方法名和类名保持一致构造方法没有返回值类型构造方法可以重载Scala中构造器主构造方法在声明类的同时,就定义了主构造方法,换言之,类就是主构造方法在一个类中,主构造方法只能有一个辅助构造方法方法名必须叫this在辅助构造方法开始(...
scala - 校验工具类【代码】
/*** 校验工具类**/ object ValidUtils {/*** 校验数据中的指定字段,是否在指定范围内* @param data 数据* @param dataField 数据字段* @param parameter 参数* @param startParamField 起始参数字段* @param endParamField 结束参数字段* @return 校验结果*/def between(data:String, dataField:String, parameter:String, startParamField:String, endParamField:String):Boolean = {val startParamFieldStr = StringUtils.getF...
CvScalar
typedef struct CvScalar {double val[4];}CvScalar; 它是opencv常用的结构体,在于仕琪的《学习opencv》中指出,其意义是RGBA值。当然这个结构体也可以用于其他用处,因为如果把CvScalar看做是一个普通的结构体时 ,其内部只不过是存储了四个double型的值,分别为val[0],val[1],val[2],val[3],我们通常用的是前三个,val[0],val[1],val[2]的含义分别是彩色照片的三个通道,R,G,B通道。R是红色分量,G是绿色分量,B是蓝色分量,a是...
13、scala模式匹配【图】
1、模式匹配的基础语法2、对类型进行模式匹配3、对Array和List的元素进行模式匹配4、case class与模式匹配5、Option与模式匹配1、模式匹配的基础语法 Scala提供了match case语法,即模式匹配。替代java的switch case。 两者不同,java中switch case仅能匹配变量的值,比如1、2、3等;scala中的match case可以匹配各种类型,比如变量的类型、集合的元素、有值或无值。 Match case语法:变量 match{ case 值=>语法}。如果值...
快学Scala(14)--模式匹配和样例类【代码】
更好的switch def main(args: Array[String]): Unit = {var sign: Int = 0val ch: Char = ‘+‘val color = Color.BLACKsign = ch match {case ‘+‘ => 1case ‘-‘ => -1case _ => 0}color match {case Color.RED => ;case Color.BLACK => ;case _ => ;}println(sign)} 守卫case _ if Charactrt.isDigit(ch) => digit = Character.digit(ch, 10) 模式匹配obj match {case x: Int => x case s: String => Integer.parseInt(s)...