E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
scala学习笔记
Scala学习笔记
11【单例对象、伴生对象、Apply方法】
Scala类之单例对象、伴生对象、Apply方法单例对象:Scala不能定义静态成员,而是代之定义单例对象(singletonobject)。以object关键字定义,对象定义了某个类的单个实例。伴生对象:当单例对象与某个类共享同一个名称时,它就被称为是这个类的伴生对象(companionobject)。这个类可以访问伴生对象的所有成员。代码示例:classUniversity{ valid=Un
y396397735
·
2015-10-09 11:00
scala
单例对象
伴生对象
apply方法
Scala学习笔记
10【对象私有字段、Scala构造器、内部类】
Scala类的属性和对象私有字段classPerson{ //默认public privatevarage=0//必须赋予初值 defincrement(){age+=1} defcurrent=age//无参数方法可省略“()” } classStudent{ //对象私有字段 private[this]varprivateAge=0//仅限Student使用,子对象不能使用 valname
y396397735
·
2015-10-08 20:00
scala
Scala构造器
Scala内部类
Scala学习笔记
09【Map、Tuple、Zip常用操作实战】
Map构建不可变Mapvalmap=Map("book"->10,"gun"->18,"ipad"->1000) for((k,v)9.0,gun->16.2,ipad->900.0)构建可变Mapvalscores=scala.collection.mutable.Map("Scala"->7,"Hadoop"->8,"Spark"->10) scores//=>Map(Hadoop->8,Sp
y396397735
·
2015-10-08 17:00
scala
map
zip
Tuple
Scala学习笔记
08【Scala数组实用操作】
Scala数组实用操作实战importscala.collextion.mutable.ArrayBuffer objectArrayTest{ defmain(args:Array[String]):Unit={ //-----------------------1、Scala数组基本操作------------------------- valnums1=newArray[Int](
y396397735
·
2015-10-08 15:00
scala
array
数组
ArrayBuffe
Scala学习笔记
07【For、Scala函数进阶】
Scala中for常用实例for(ix+200//"(x:Int)=>x+200"匿名函数直接作为值进行传递 println("addA()___result:"+addA(99))//addA()___result:199 println("add___result:"+add(98))//add___result:298 //递归实例 deffac(n:Int):Int=if(n>"))
y396397735
·
2015-10-08 14:00
scala
函数
for
Scala-lazy
Scala学习笔记
06【Tuple、Array、Map、文件实战入门】
1、Scala的Tuple入门示例程序:objectTupleTest { defmain(args:Array[String]):Unit= { valtriple=(100,"Scala","Spark","难免有错") println(triple._1)//编号从1开始!!! println(triple._2) println(triple._3) println(triple._4)
y396397735
·
2015-10-07 17:00
scala
array
map
File
Tuple
Scala学习笔记
05【Scala函数定义、流程控制、异常入门】
Scala函数定义及流程控制:可运行完整代码示例:objectScalaFucBasic { defmain(args:Array[String]):Unit=//Unit代表函数返回值为空,即void { println("----函数使用示例----")//分号可要可不要 println("Scala流程控制之dowhile循环:") dowhile//调用函数dowhile(),也可以用d
y396397735
·
2015-10-07 16:00
scala
函数
流程控制
异常
Scala学习笔记
04【类和对象】
1、类,字段和方法类的定义及创建对象:classChecksumAccumulator { ...//类定义里,可以放置字段和方法,这些被笼统地称为成员:member。 }创建ChecksumAccumulator对象:newCheckSumAccumulator又:classChecksumAccumulator { varsum=0 } valacc=newChecksumAccumulat
y396397735
·
2015-10-04 19:00
scala
类
对象
Class
Scala学习笔记
03【学习识别Scala函数式风格】
Scala允许用指令式风格编程,但是鼓励采用一种更函数式的风格。学习用函数式风格编程将不仅让你变成更好的Scala程序员,而且还能拓展你的视野并使你变成通常意义上好的程序员。指令式和函数式编程差异:如果代码包含了任何var变量,那它大概就是指令式的风格。 如果代码根本就没有var--就是说仅仅包含val--那它大概是函数式的风格。 因此向函数式风格推进的一个方式,就是尝试不用任何var编程。考
y396397735
·
2015-10-04 16:00
scala
函数式编程
函数式
Scala学习笔记
02【数组、列表、元组、集合和映射】
1、使用类型参数化数组【Array】Scala使用new实例化对象或类实例。当在Scala里实例化对象,可以使用值和类型把它参数化:parameterize。参数化的意思是在你创建实例的时候”设置”它。例如,实例化一个新的java.math.BigInteger并使用值”12345”参数化:valbig=newjava.math.BigInteger("12345")一个完整实例:objectHe
y396397735
·
2015-10-02 18:00
scala
集合
数组
列表
元组
Scala学习笔记
01【Scala入门初探】
1、Scala解释器的使用 下载地址:http://www.scala-lang.org/downloads. Scala的交互式shell就叫做scala。命令提示符输入scala就行(需配置好Java环境变量): 以下是cmd内容:MicrosoftWindows[版本6.1.7601] 版权所有(c)2009MicrosoftCorporation。保留所有权利。 C:\Use
y396397735
·
2015-09-29 13:00
Scala学习笔记
1类型自动匹配(模式匹配)2函数是有值的(匿名函数是函数的常态)递归函数需要指定返回值3.内部类隶属于外部类的实例本身,而java内部类属于外部类,对外部类的依赖路径依赖4.object类似于java中的静态内部类里面的所有成员都是静态的,适用于配置文件静态都是用来修饰类的内部成员的。比如静态方法、静态成员变量。它唯一的作用就是随着类的加载(而不是随着对象的产生)而产生,以致可以用类名+静态成员名
jethai
·
2015-09-24 15:56
Scala精髓
Scala学习笔记
-搭建开发环境
Scala的安装1.首先,下载ScalaSDK,http://www.scala-lang.org/download/;2.将下载好的SDK安装到本地文件目录,并将其添加到Path中;3.在dos中输入scala-version检查Scala安装及配置是否成功;出现如下提示,则证明Scala安装成功。在IntelliJ中配置Scala开发环境1.下载IntelliJ的Scala插件进入File->
u012302681
·
2015-09-12 19:00
scala
scala学习笔记
1.lazy惰性计算 惰性求值特别用于函数式编程语言中。在使用延迟求值的时候,表达式不在它被绑定到变量之后就立即求值,而是在该值被取用的时候求值。除可以得到性能的提升外,惰性计算的最重要的好处是它可以构造一个无限的数据类型。 Scala中通过lazy关键字来定义惰性变量,惰性变量只能是不可变变量。例如下面,只有在调用惰性变量b的toString方法的时候,才会去实例化b这个变量。可以看到
cjun1990
·
2015-09-10 09:00
Scala学习笔记
--隐式类型和隐式转换
1>隐式转换:隐式转换(implicitconversionfunction)指的是那种以implicit关键字声明的带有单个参数的函数。2>想使用File的对象直接调用read方法,但是此类中不含有该方法,所有用隐式转换把file类型转换为RichFile类型,然后调用该方法。3>隐式转换的命名规则,file2RichFile,前面是现有类型,后面是目标类型。4>编译器在编译的时候,执行到pri
snail_gesture
·
2015-09-07 19:00
scala
Scala学习笔记
--Mainfest,ClassTag原理浅析
1>Mainfest上下文界定1.在scala中数组必须是有类型的,如果直接是泛型的话将会报错,这时候引入了Manifest上下文界定,需要一个Mainfest[T]对象,而mainifest[T]有一个隐式值,2.如果调用makePair(1,2),编译器将定位到隐式的Manifst[Int]并实际上调用makePair(2,3)(intManifest),该方法调用的就是newArray(2)
snail_gesture
·
2015-09-01 23:00
scala
Scala学习笔记
--视图界定
1>泛型类1.定义形式classPair[T,S](valfirst:T,valsecond:S)T,S是类型的参数2.Scala会从构造参数推断出实际类型Valp=newPair(42,”String”)//Pair[Int,String]你也可以自己指定类型Valp2=newPairAny,Any2>泛型函数1.在函数名的后面需要把类型的参数加上defgetMiddle[T](a:Array[
snail_gesture
·
2015-09-01 13:00
scala
Scala学习笔记
--模式匹配
Patternmatching(模式匹配)1>定义一个data常量,对它进行匹配,最后一行是_如果前面都不满足则匹配到他2>在模式匹配中可以加入判断语句,进行选择3>可以对表达式的类型进行匹配,在Scala中用这种匹配模式,而不是isInstanceOf操作符4>匹配数组,列表和元组1.匹配数组2.匹配列表3.匹配元组4>样例类是一种特殊的类,它们经过优化以用于模式匹配caseclass在声明的时
snail_gesture
·
2015-08-30 00:00
scala
Scala学习笔记
--特质
在scala中,特质相当于java中的接口,但是其功能要强大点多。scala不允许类从多个超类继承1.如下是一个特质,是具有接口性质的功能1>log是一个抽象方法,不需要再前面加关键字abstract2>子类实现,使用extends继承。复写方法的时候,def前面不需要加override3>如果你需要多个特质,需要用with关键字4>特质里面不一定都是抽样方法,也可以是实现的方法5>如果log是抽
snail_gesture
·
2015-08-24 22:00
scala
Scala学习笔记
--apply用法
1>单例对象scala中可以用object来达到静态方法或静态字段例如://如下的变量和方法都是静态的//object里面的内容只有第一次使用的时候才会执行objectUniversity{privatevarstudentNo=0defnewStudentNo={studentNo+=1//最后一行代表返回值studentNo}}2>伴生对象1.在scala中通过类和类同名的”伴生”对象达到既有
snail_gesture
·
2015-08-24 22:00
scala
Scala学习笔记
--单例,伴生对象及apply用法
1>单例对象scala中可以用object来达到静态方法或静态字段例如://如下的变量和方法都是静态的//object里面的内容只有第一次使用的时候才会执行objectUniversity{privatevarstudentNo=0defnewStudentNo={studentNo+=1//最后一行代表返回值studentNo}}2>伴生对象1.在scala中通过类和类同名的”伴生”对象达到既有
snail_gesture
·
2015-08-23 22:00
scala
Scala学习笔记
--Constructor
Scala的类和java中的类很相似,但是scala中的类表达更精炼classCounter{//在scala中类中定义的实例默认是public//必须初始化privatevarvalue=0//方法默认是公有的defincrement(){value+=1}}在scala中,getter和setter分别叫做:age和age_=。//var定义的,privateAge私有字段既有setter方法
snail_gesture
·
2015-08-23 22:00
scala
Scala学习笔记
--Map,Tuple,Zip总结
补充定义:映射:键/值对偶的集合在Scala中,映射是对偶的集合,对偶简单地说就是两个值构成的组,这两个值并不一定是同一类型的,例如:(“Alice”,10)元组(tuple)是不同类型的值得聚集Map(构造映射)“Alice”->10“->”用来创建对偶->(“Alice”,10)//构造一个不可以变的Map[String,Int],其值不可以变valscores=Map(“Alice”->10
snail_gesture
·
2015-08-22 23:00
scala
Scala学习笔记
----Slick
Slick是TypeSafe推出的Scala数据库访问库。开发者可以使用Scala语言风格来编写数据查询,而不是用SQL.这是Slick2.1,Slick3.0略有不同.查询:这将查询出uid=1&tombstone=0的数据,并取第一条.返回的结果是Option类型.valuserOpt=table.filter(_.uid===1) .filter(_.tombstone===0).take(
心尖偏左
·
2015-08-22 16:00
Scala学习笔记
--数组
对于Scala来说,数组是一块相当总要的内容,因此掌握是十分重要的。数组分为两种:定长数组(Array)变长数组(Arraybuffer)Array://10个整数的数组,所有元素的初始化为0valnums=newArrayString//长度为2的Array[String]--类型是推断出来的 //注:已提供初始值就不需要new了 vals=Array("hello","Spark") Arra
snail_gesture
·
2015-08-21 23:00
scala
Scala学习笔记
--for,function,lazy用法小结
1.循环forfor(i在遍历字符串或数组时,可以使用until方法,而不是使用to方法,因为until方法返回一个并不包含上限的区间。例如:varsum=0;for(chscala函数不需要指定函数的返回值类型,除非是递归函数scala编译器可以通过=符号右侧的表达式的类型推断返回类型。2>如果函数体需要多个表达式,可以使用代码块,块中的最后一个表达式的值就是函数的返回值。deffac(n:In
snail_gesture
·
2015-08-21 23:00
scala
List的foldLeft、foldRight、sort操作代码实战之
Scala学习笔记
-28
packagecom.leegh.dataset/***@authorGuohuiLi*/objectList_Fold_Sort{defmain(args:Array[String]):Unit={println((1to100).foldLeft(0)(_+_))println((0/:(1to100))(_+_))println((1to5).foldRight(0)(_-_))printl
weixin_33958366
·
2015-08-21 14:00
scala
大数据
Scala学习笔记
(5)-类和方法
Scala里的类和方法的概念都是差不多的,这里只列出Scala重要的一些概念:1.Public是Scala的缺省访问级别,可以省略不写。2.Scala里方法参数的一个重要特征是它们都是val,不是var(参数是val的理由是val更容易讲清楚,你不需要多看代码以确定是否val被重新赋值,而var则不然。)如果你想在方法里面给参数重新赋值,结果是编译失败。3.如果方法没有发现任何显式的返回语句,Sc
李白吃白菜
·
2015-08-14 13:00
Scala学习笔记
(4)-函数式风格
识别指令式和函数式风格有一个小技巧就是,如果代码包含了任何var变量,那它大概就是指令式的风格。如果代码根本就没有var——就是说仅仅包含val——那它大概是函数式的风格。因此向函数式风格推进的一个方式,就是尝试不用任何var编程,Scala鼓励你使用val进行函数式编码。先来看一个指令式风格的: def printArgs(args: Array[String]): Unit = { v
李白吃白菜
·
2015-08-14 12:00
Scala学习笔记
(3)-数组集合元组
1.带类型的参数化数组val greetStrings= new Array[String](3)其中Array[String]变量greetStrings的类型,3为实例初始化参数。Scala里的数组是通过把索引放在圆括号里面访问的,而不是像Java那样放在方括号里。所以数组的第零个元素是greetStrings(0),不是greetStrings[0]。Scala如何看待val的意义的重要概念
李白吃白菜
·
2015-08-14 11:00
Scala学习笔记
(2)-基础语法
秉着简洁而不失完整的的原则,这章只把Scala主要语法和与Java不同的内容列出来,以后章节也如此,内容以简洁为主,太长了自己都被吓着了,也没耐心看下去。1.Scala解释器使用,这里不做介绍,有IDE这玩意一般用不着。2.基本数据类型Java原始类型在scala包里都有对应的类。例如,scala.Boolean对应着Java的boolean。scala.Float对应着Java的float。当你
李白吃白菜
·
2015-08-14 11:00
Scala学习笔记
(1)-环境搭建
Scala是一种多范式的编程语言,设计初衷是要集成面向对象编程和函数式编程的各种特性。scala可以和java程序无缝拼接,因为scala文件编译后也是成为.class文件,并且在JVM上运行,有下下一代Java之称,当然要有Java今天的阵势还有很长很长的一段路要走。Scala的几个主要特性1.面向风格:Scala中的每个值都是一个对象,包括基本数据类型(java中基本类型不是对象)在内,连函数
李白吃白菜
·
2015-08-14 11:00
scala学习笔记
Scala笔记因为有个项目(网游服务器)用到了scala,第一次接触感觉这门语言非常犀利,所以把做项目的过程中积累的这个语言相关的知识点整理下做个笔记。内容不分先后顺序,前后基本没有逻辑,就是简单的知识点块。我之前是做java的,所以有些比较都是针对java。先介绍几个重要链接:scala官网http://www.scala-lang.org/scalaAPIhttp://www.scala-la
a071800
·
2015-08-04 17:00
scala学习笔记
(2)
Everythingisanobject前言Scalaisa pure object-orientedlanguage inthesensethat everythingisanobject,including numbers or functions.ItdiffersfromJavainthatrespect,sinceJavadistinguishesprimitivetypes(sucha
u010064842
·
2015-07-31 23:00
scala学习笔记
(1)
scala是以实现scaleablelanguage为初衷设计出来的一门语言。官方中,称它是object-orientedlanguage和functionallanguage的混合式语言。并且,scala可以和java程序无缝拼接,因为scala文件编译后也是成为.class文件,并且在JVM上运行。不过,我更关心的是它的scaleable(扩展性)。一门语言到底怎样才算有扩展性呢?对语言而言什
u010064842
·
2015-07-31 23:00
DT大数据梦工厂-
Scala学习笔记
(1):Scala开发环境搭建和HelloWorld解析
一、scala是函数式编程和面向对象编程结合的语言,这两种编程的特点分别是什么?答:函数式编程擅长数值的计算;面向对象编程特别适合于大型工程或项目的组织,以及团队的分工协作。 二、Scala的特点Scala结构优雅、计算精致、富有表现力 三、scala的安装需要什么资源?Java,推荐安装Java8(Java7也可以)支持scala2.10.*以上(可以安装2.10.4,http://scala
lisunwei
·
2015-07-27 23:00
scala
开发
梦工厂
DT大数据梦工厂-
Scala学习笔记
(1):Scala开发环境搭建和HelloWorld解析
一、scala是函数式编程和面向对象编程结合的语言,这两种编程的特点分别是什么?答:函数式编程擅长数值的计算;面向对象编程特别适合于大型工程或项目的组织,以及团队的分工协作。 二、Scala的特点Scala结构优雅、计算精致、富有表现力 三、scala的安装需要什么资源?Java,推荐安装Java8(Java7也可以)支持scala2.10.*以上(可以安装2.10.4,http://scala
lisunwei
·
2015-07-27 23:00
scala
开发
梦工厂
DT大数据梦工厂-
Scala学习笔记
(1):Scala开发环境搭建和HelloWorld解析
一、scala是函数式编程和面向对象编程结合的语言,这两种编程的特点分别是什么?答:函数式编程擅长数值的计算;面向对象编程特别适合于大型工程或项目的组织,以及团队的分工协作。二、Scala的特点Scala结构优雅、计算精致、富有表现力三、scala的安装需要什么资源?Java,推荐安装Java8(Java7也可以)支持scala2.10.*以上(可以安装2.10.4,http://scala-la
lisunwei
·
2015-07-27 23:00
开发
Scala
梦工厂
Scala学习笔记
-2
Map练习 object MapOps { def main(args: Array[String]): Unit = { val ages = Map("Rocky" -> 27, "Spark" -> 5) for ((k, v) <- ages) println("Key is " + k + ",va
·
2015-07-26 12:00
scala
Scala学习笔记
-1
import scala.collection.mutable.ArrayBuffer /** * @author Guohui Li */ /** * val A = new Array[T](N) * val B = Array(N1,N2) * 数组声明时若给出值,Scala可以进行类型推断,可以不用声明数组类型、长度 * 变长数组声明与操作 * val C = new ArrayBuf
·
2015-07-25 17:00
scala
scala学习笔记
(一)
1.val定义变量其值为一个常量,var定义的变量其值可以改变。在scala中,鼓励多使用val变量,大多数程序不 需要太多的var变量。2.在scala中,变量或者函数的类型总写在变量或者函数名称的后面。这使得我们更容易阅读那些复杂类型的声 明。3.在变量声明或者赋值语句后面并需要使用分号,仅当同一行存在多条语句时使用分号隔开。4.scala有七种数值类型:Boolean、Byte、Cha
lcj200813138020
·
2015-07-16 16:00
scala学习笔记
(三)
1.Scala和Java的互操作性互操作涉及两个方面,一是Scala访问Java;二是Java访问Scala。我们只是看前者,后者使用的比较少,支持也不完整,也没有多少意义。Scala的类继承结构图:Scala的AnyRef等价于Java的Object。需要注意的是Nothing和Null,它们是类型的下限。这在其他面向对象的语言里面是没有的。在Scala里面使用Java是非常顺畅的。因为存在Sc
lcj200813138020
·
2015-07-16 16:00
scala学习笔记
(二)
1.告诉编译器你希望这个参数被当做参数序列处理,追加":_*"即可,如:vals=sum(1to5:_*).2.如果函数体包含在花括号当中但没有前面的=号,那么返回类型为Unit,这样的函数称为过程。过程不返回值,我们调用它仅仅是为了副作用。建议大家总是显示声明Unit返回类型。3.当val被声明lazy时,它的初始化将被推迟,直到我们首次对它取值。4.try/catch:处理异常;try/fin
lcj200813138020
·
2015-07-16 16:00
Scala学习笔记
(1) -- 为什么要学函数式编程
很久之前我就学过Lisp和Erlang,但是也就是写写HelloWorld,写个排序算法。也在Coursera上听过Scala的课,可是那时候我还不怎么用Java,所以后来也没怎么继续。可是对函数式编程的兴趣一直不减,工作中几乎不会用Scala,但是用的是Java,我一直在想着怎么把Scala用到工作中。最近在写一个工具,因为这个工具基本只有我们项目组用,而且很简单,所以我就用Scala写了。以后
nxlhero
·
2015-06-14 18:58
scala
spark
函数式编程
lisp
Scala学习笔记
(1) -- 为什么要学函数式编程
很久之前我就学过Lisp和Erlang,但是也就是写写HelloWorld,写个排序算法。也在Coursera上听过Scala的课,可是那时候我还不怎么用Java,所以后来也没怎么继续。可是对函数式编程的兴趣一直不减,工作中几乎不会用Scala,但是用的是Java,我一直在想着怎么把Scala用到工作中。最近在写一个工具,因为这个工具基本只有我们项目组用,而且很简单,所以我就用Scala写了。以后
nxlhero
·
2015-06-14 18:58
LISP
SPARK
函数式编程
编程语言
Scala学习笔记
(1) -- 为什么要学函数式编程
很久之前我就学过Lisp和Erlang,但是也就是写写HelloWorld,写个排序算法。也在Coursera上听过Scala的课,可是那时候我还不怎么用Java,所以后来也没怎么继续。可是对函数式编程的兴趣一直不减,工作中几乎不会用Scala,但是用的是Java,我一直在想着怎么把Scala用到工作中。最近在写一个工具,因为这个工具基本只有我们项目组用,而且很简单,所以我就用Scala写了。以后
nxlhero
·
2015-06-14 18:58
scala
spark
函数式编程
lisp
sealed trait
Scala学习笔记
-面向对象篇
被sealed声明的trait仅能被同一文件的的类继承。除了这个,我们通常将sealed用于枚举中,因为编译器在编译的时候知道这个trait被哪些类继承过,因此我们在match时对sealedtrait进行case的时候,如果你没有判断全部编译器在编译时就会报错。下面举例:在Person.class文件中: sealedtraitPerson caseclassTeacher(name:Strin
wzq294328238
·
2015-05-24 21:00
apply方法
Scala学习笔记
-面向对象篇
刚入门scala时,发现scalal中很少使用new来产生对象,比如我们在使用Array的时候:valarray:Array[Int]=Array(1,2,3,4,5,6,7,8,9)你会发现,Array[Int]对象已经莫名其妙的创建好了,这与java是有较大差别的,之所以可以这样创建,是因为scala中存在apply这个方法。我们先创建一个Test对象,为他声明一个apply方法:classT
wzq294328238
·
2015-05-23 14:00
闭包
Scala学习笔记
-面向对象篇
以前一直不知道什么叫闭包,网上找了半天也没明白,只知道闭包的定义:代码+非局部变量=闭包代码好理解,那什么时非局部变量呢?首先我们定义一个种树的方法:defplantATree(treeName:String)={ varhigh=0 valtaller(meter:Int)={ high+=meter println("大家好,我是"+treeName+",今年我"+high+"米了") } t
wzq294328238
·
2015-05-06 17:00
闭包
SCALA学习笔记
(二)
SCALA学习笔记
(二)
SCALA学习笔记
二泛型在继承中的类型变化InvariantCovarianceContravarianceCovarianceContravarianceCall-ByNameCurrying
bluishglc
·
2015-03-30 07:47
Scala语言
上一页
2
3
4
5
6
7
8
9
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他