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学习笔记
(五)----单例,伴生对象,类static写法
直接上代码注意点写在注释里了packagecn.limbo.demo /** *Scala里面创建单例对象非常简单,创建单例对象需要用到object关键字,而非class。因为单例对象无法初始化,所以不能给他的祝构造函数传递参数 */ classMarker(valcolor:String) { println("Creating"+this.color) overridedeftoString
a1610770854
·
2016-06-28 15:00
Scala学习笔记
(四)----private的访问权限
直接上代码注意点写在注释里了/** *Scala对private关键字进行的细粒度访问控制 *和java不一样的在与protected关键字和private关键字,Scala默认的关键字是public *Scala支持嵌套包定义 *如果需要对别的包可见的话,可以写成private[cn],private[limbo]等 *import语句可以写在任意的位置 */ packagecn.limbo.
a1610770854
·
2016-06-28 15:00
Scala学习笔记
(三)----类的写法
直接上代码注意点写在注释里了packagecn.limbo.demo /** *CreatedbyLimboon16/6/28. *classClassName(),括号代表了主构造器,defthis()表示定义了一个副构造器 *类中的所有单独可执行的语句都会被包含在主构造器中 */ classComplex(valreal:Int,valimaginary:Int){ def+(operan
a1610770854
·
2016-06-28 15:00
Scala学习笔记
(一)----Scala环境安装
MacOSX和Linux上安装Scala第一步:Java设置确保你本地以及安装了JDK1.5以上版本,并且设置了JAVA_HOME环境变量及JDK的bin目录。我们可以使用以下命令查看是否安装了Java:$java-version javaversion"1.8.0_31" Java(TM)SERuntimeEnvironment(build1.8.0_31-b13) JavaHotSpot(TM
a1610770854
·
2016-06-28 15:00
scala
linux
windows
mac
OS
X
Scala学习笔记
(二)----IDE
引言在之前的文章中,我们介绍了如何使用ScalaIDE也就是eclipse中集成的Scala开发插件来进行Scala语言程序的开发,在使用了一段时间之后,发现eclipse对Scala的支持并不是很好。用户体验比较差,比如联想速度比较慢等。由于在公司一直使用的Scala开发工具是IntellijIDEA(好吧,其实我使用ScalaIDE的目的就是想试一下这两个各有什么优缺点),各方面感觉还不错,所
a1610770854
·
2016-06-28 15:00
scala
idea
intellij
Scala学习笔记
(3): 面向对象与容器
面向对象编程这个通过一个例子来解释Scala面向对象编程的基本概念,这里我们需要为MongoDB(一种NoSQL数据库,详见我的另一篇博客)编写一个简单的API。MongoDB官方提供了JavaAPI,而我们要做的是使用Scala对其进行简单的封装。Class先来搭建一个叫MongoClient的类作为建立数据库连接的入口,定义一个MongoClient类,并指定主构造函数的两个参数(valhos
xiaqian0917
·
2016-05-31 10:00
Scala学习笔记
4——类和对象(二)
有理数类的表示实现规范:支持有理数的加减乘除,并支持有理数的规范表示1.定义Rational首先,考虑用户如何使用这个类,我们已经决定使用“Immutable”方式来使用Rational对象,我们需要用户在定义Rational对象时提供分子和分母。classRational(n:Int,d:Int)可以看到,和Java不同的是,Scala的类定义可以有参数,称为类参数,如上面的n、d。Scala使
26001a36aa12
·
2016-05-25 15:14
Scala学习笔记
-伴生对象于孤立对象
Scala-伴生对象于孤立对象Scala虽然是基于JVM构建的,但与Java还是有很多区别,其实一个重要的区别是Scala比Java更面向对象(纯面向对象),最明显的用例是scala中所有的操作符都是方法(操作符面向的使用者是对象)。伴生对象/孤立对象也是scala作为纯面向对象语言的一种体现。孤立对象先看一个例子objectTest{ vara="helloworld" defhelloworl
u012302681
·
2016-05-11 09:00
scala
Scala学习笔记
-类
Scala-类Scala的强大之一在于它支持函数式编程,之二在于它可以Java无缝整合。所以Scala也是一门OO语言,类作为面向对象的基础概念,在Scala中也是必不可少的。Scala类的定义与Java虽出同门,但有所区别,下面就探索一下Scala的类。最简单的类定义类作为对象的蓝图,在使用前要进行定义classTest{}这是一个没有方法,没有属性,没有构造参数的简单类,有了它,就可以创建对象
u012302681
·
2016-05-07 13:00
scala
Scala学习笔记
-方法和函数
Scala-方法和函数Scala的强大在于支持函数式编程,同时它又基于Jvm(Java),所有通常是一门OO语言。方法在OOP中,方法作用于对象,是对象的行为,在Scala中的方法也是如此。方法定义定义方法的基本格式是:def方法名称(参数列表):返回值=方法体scala中方法的返回值默认是方法体重的最后一行表达式的值,当然也可以用return来执行返回值,但scala并不推荐这么做。deffun
u012302681
·
2016-05-05 15:00
scala
Scala学习笔记
-控制结构
Scala-控制结构控制结构是实现业务逻辑的基础,scala提供了基本的控制结构if..else、do…while、while..for..等,下面我们用具体的示例来对这集中结构做简要说明。if…else…在java、c或其他的编程语言中,if…else…是作用是控制流程分支,但scala除此之外,还提供为if..else..提供了一个更强大的功能:带返回值。实际上这也是scala语言的一大特点:
u012302681
·
2016-05-02 21:00
scala
Scala学习笔记
-基本数据类型
Scala-基本数据类型scala支持八种基本数据类型,同时利用隐式转换,对基本数据类型进行了增强,下面就来介绍一下scala中的基本数据类型。scala基本数据类型说明scala中的基本数据类型同java的基本数据类型有所不同,scala没有区分基本类型和包装类型,而是统一定义为class类,注意这里的类不同于java中的包装类型,这仅仅是scala的一个普通类而已,scala编译器在翻译的过程
u012302681
·
2016-04-30 12:00
scala
Scala学习笔记
-声明值和变量
Scala-值和变量scala中的变量有两种,一种是可变的,用var来声明,另一种的不可变的用val来声明,下面我们就来简要说明一下。首先,用val声明一个不可变的变量msg1,从结果中可以看到msg1的类型为Stringscala>valmsg1="hellworld" msg1:String=hellworld scala>那么既然val是迎来声明不可变的变量,如果对其值进行修改会发生什么事呢
u012302681
·
2016-04-29 08:00
scala
scala学习笔记
(一)入门初探
1.值和变量val answer = 8 * 5 + 2 //定义值,不可改变,鼓励定义值少定义变量 var counter = 0 counter = 1 //定义变量,可以改变 val greeting: String = null//指定类型声明类型,注意:声明值或变量不初始化会报错 val greeting: Any = "Hello"2.函数定义//有时候scala编译器需要函数结果
等待救赎
·
2016-03-29 19:00
Scala学习笔记
1.在Scala中,变量或函数的类型总是写在变量或函数的名称的后面。 2.Scala并不区分基本类型和引用类型 3.定义常量用val,定义变量用var 通过val声明的只会生成getter,而var会生成setter,getter 4.java中的++i和i++在Scala里不起作用 5.参数化:在创建实例的同时就完成对它的“设置” 6.a*b:左操作数是方法的调用者,可以写成a.*(b) 但
MOBIN-F
·
2016-03-19 01:00
scala学习笔记
,第一章
scala伴生对象 scala没有静态方法,不过有个类似的特性叫做单例对象。通常一个类对应有一个伴生对象,其方法跟java中的静态方法一样。 scalaapply方法 scala中有类似函数调用的方法。举例来说,如果s是一个字符串,那么s(i)就是该字符的第i个字符。例如 "Hello"(4)//将输出o 你可以把这种方法理解为()方法的重载形式,它背后的实现原理是一个名为appl
huangxia73
·
2016-02-24 23:00
scala
[
Scala学习笔记
]伴生对象和伴生类
先看如下代码:packagecom.joseph.test/***伴生类和伴生对象*//***伴生类*/classSchool{valid=School.incrementId}/***伴生对象*/objectSchool{privatevarstudentId=0privatedefincrementId={studentId+=1studentId}}objectTest{defmain(ar
EvilJoseph
·
2016-02-23 15:06
Scala
Scala学习笔记
(一)
一、定义变量 Scala为定义变量提供了两种语法。使用 val定义常量,一经定义后,该变量名不能被重新赋值。使用 var定义变量,可被重新赋值。package com.sunsharing /** * Created by Administrator on 2016/1/24. */ object Variable { var i=0; val j=0; i = 999
Chenmeifen
·
2016-01-24 17:00
Scala学习笔记
(一)
一、变量获取变量的值是一个耗时的工作时,可以考虑使用lazyvar.lazyvalforLater=someTimeConsumingOperation()二、函数定义“=”并不只是用来分割函数签名和函数体的,它的另一个作用是告诉编译器是否对函数的返回值进行类型推断!如果省去=,则认为函数是没有返回值的!比如:scala>defmyFirstMethod()={“excitingtimesahea
小程故事多
·
2015-12-21 14:34
Scala学习笔记
(一)
一、变量获取变量的值是一个耗时的工作时,可以考虑使用lazyvar. lazyvalforLater=someTimeConsumingOperation() 二、函数定义“=”并不只是用来分割函数签名和函数体的,它的另一个作用是告诉编译器是否对函数的返回值进行类型推断!如果省去=,则认为函数是没有返回值的!比如:scala>defmyFirstMethod()={“excitingtimesah
flychao88
·
2015-12-21 14:00
scala学习笔记
5
scala的层级1.scala中,每个类都继承自通用的名为any的超类,any类似是java中的object2.scala还在层级的低端定义了一些有趣的类,如null和nothing扮演通用的子类3.因为每个类都继承自Any,所以scala程序里的每个对象都能用==!=equalshashCodetoString4.根类Any有两个子类:AnyVal和AnyRel。AnyVal是Scala里每个内
see_you_again
·
2015-11-16 16:00
scala学习笔记
4
函数和闭包1.定义函数最通用的方法是作为某个对象的成员,这种函数被称为方法。2.函数式编程风格:程序应该被解构成若干小的函数,每块实现一个定义完备的任务,组装成复杂的事物3.局部函数可以定义在另外一个函数的内部,并且局部函数可以访问外部函数的属性4.=>指明函数左边的东西转化成右边的东西5.什么叫闭包: 一直一个函数f(x)=x+i,让你求f(3)=3+i。 分析:要得到最终的函数值,你必须知
see_you_again
·
2015-11-16 16:00
scala学习笔记
3
packagecom.scala.stu /** *类和对象,类是对象的蓝图 */ objectt_003extendsApp{ for(season<-List("1","2","3")) println(season) } Scala的宗旨是---简洁--- 1.scala里方法参数的一个重要特征是他们都是val不是var。所以参数不不能够重新赋值 2.Scala犯
see_you_again
·
2015-11-16 16:00
scala学习笔记
2
packagecom.scala.stu importscala.collection.mutable.Map importscala.io.Source /** *第二章例子 */ objectt_002{ defmain(args:Array[String]):Unit={ t_arr() t_list() t_tuple() t_mp() t_File() }
see_you_again
·
2015-11-16 16:00
scala学习笔记
1
packagecom.scala.stu /** *第一章例子 */ objectt_001{ defmain(args:Array[String]):Unit={ //定义一个函数指向一个匿名函数,测试while()一个循环 xunhuan(10) } /** *循环函数 */ defxunhuan(num:Int):Unit={ vara=num while
see_you_again
·
2015-11-16 16:00
Scala学习笔记
(二)表达式和函数
笔记的整理主要针对Scala对比Java的新特性; 1、if表达式 if表达式是有结果返回的。 val a= if (5>2) “你好” else 1 a的值为if表达式返回值为 “你好” 2、while表达式 while表达式是没有返回值的(返回值为 Unit),在scala中避免使用,通常都需要与var结合使用 3、for表达
·
2015-11-11 14:55
scala
Scala学习笔记
(一)数据类型
.类型参数化数组 val arrayString = Array[String](2); arrayString (0)=”Hello”; arrayString (1)=”World”; for (i <- 0 to 1){ print(arrayString (i)) } 需要留意上面代码的几个地方如下: 1、无论是在创建数组时的维度指定,还是对数组元素的访问都是使用括号
·
2015-11-11 14:53
scala
scala学习笔记
(四)样本类与模式匹配
访问修饰符 格式:private[x]或protected[x],x指某个所属包、类或单例对象,表示被修饰的类(或方法、单例对象),在X域中公开,在x域范围内都可以访问; private[包名]:在该包名作用域内,被修饰域都能被访问; private[类名]:在该类的作用域,被修饰域都能被访问; private[this]:仅能在包含了定义的同一对象中访问,用于保证同一类中不能被其它对象访
·
2015-11-11 09:17
scala
Scala学习笔记
(三)类层级和特质
无参方法 功能:将方法的定义转换为属性字段的定义; 作用范围:方法中没有参数,并且方法仅能通过读取所包含的对象属性去访问可变状态,而不改变可变状态,就可使用无参方法; 例子: abstract class Element{ def texts:String } class Sub1Element(text:String) extends Eleme
·
2015-11-11 09:13
scala
Scala学习笔记
1 闭包 var a = 3 var addfun = (x:Int) => x + a var b = addfun(10) println(b) addfun 就是个和对象无关的函数,局部变量,使用方法和函数一样,但是好像不推荐这种写法。2 类的创建,简单使用 abstract class BParent{ de
·
2015-11-11 02:59
scala
原创:
Scala学习笔记
(不断更新)
Scala是一种函数式语言和面向对象语言结合的新语言,本笔记中就零散记下学习scala的一些心得,主要侧重函数式编程方面。 1. 以递归为核心控制结构。 实现循环处理的方式有三种:goto,for/while,递归,其中用goto实现循环已经在现代语言中被放弃,而for/while形式的结构化编程成为主流,而递归作为另一种方案,则长期只流行在函数式编程的小圈子中。 递归被主流编程界所担心的主要
·
2015-11-11 01:57
scala
Scala学习笔记
--Array和List和Tuple和Set和Map
Array(可变的同类对象序列)Scala里面使用new实例化对象,实例化过程中,可以用值和类型使对象参数化(parameterize)参数化的意思是:在创建实例的同事完成对它的”设置”。使用值参数化实例通过把值传递给构造器的圆括号来实现。scala>valbig=newjava.math.BigInteger(“12345”)big:java.math.BigInteger=12345defma
snail_gesture
·
2015-11-04 21:00
scala
Scala学习笔记
2
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
·
2015-10-23 09:06
scala
Scala学习笔记
- TODO
Motivation Sometimes I fell like giving up, then I remember I have a lot of motherfuckers to prove wrong. A preparation phase of exploration of polyglot language in JVM and Spark. Audience mys
·
2015-10-21 11:32
scala
Scala学习笔记
27【泛型类、泛型方法、Bounds入门实战】
Scala泛型类、泛型方法的定义使用packagecom.yl.scala abstractclassStack[A]{//'A'是Stack类及其子类的类型参数。 defpush(x:A):Stack[A]=newNonEmptyStack[A](x,this) defisEmpty:Boolean deftop:A defpop:Stack[A] } classEmptyStack[A]e
y396397735
·
2015-10-17 15:00
scala
泛型
bounds
Scala学习笔记
26【Set、Map、TreeSet、TreeMap实战】
packagecom.yl.scala importscala.collection.mutable importscala.collection.mutable.TreeSet importscala.collection.immutable.TreeMap objectMapSet{ defmain(args:Array[String]){ //Set实战 valdata=mutable
y396397735
·
2015-10-17 00:00
scala
map
tree
TreeMap
TreeSet
Scala学习笔记
25【ListBuffer、ArrayBuffer、Queue、Stack常用操作实战】
packagecom.yl.scala objectTest{ defmain(args:Array[String]){ //ListBuffer实战 importscala.collection.mutable.ListBuffer vallistBuffer=newListBuffer[Int] listBuffer+=1 listBuffer+=2 println("listBuffer
y396397735
·
2015-10-16 19:00
scala
ListBuffer
Scala学习笔记
24【List的高效排序】
packagecom.yl.Scala objectsortList{ defmain(args:Array[String]){ defcombineSort[T](less:(T,T)=>Boolean)(input:List[T]):List[T]={/***@paramxList要合并的有序列表*@paramyList要合并的有序列表*@return合并后的列表*/defcombine(
y396397735
·
2015-10-16 13:00
Scala学习笔记
23【List 的map、flatMap、foreach、filter操作实战】
packagecom.yl.Scala objectListMap{ defmain(args:Array[String]){ //map操作 println(List(1,2,3,4,6)map(_+1))//各元素加1,生成新列表List(2,3,4,5,7) valdata=List("Scala","Hadoop","Spark") println(datamap(_.length)
y396397735
·
2015-10-15 20:00
scala
spark
filter
Scala学习笔记
22【继续学习Scala List的使用】
packagecom.yl.Scala objectListTest{ defmain(args:Array[String]){ //List连接案例,符号“:::”完成 valcList=List(1,2,3,4):::List(5,6):::List(7,8) println(cList) println(cList.length)//求长度 //字符串List[String]常用操作
y396397735
·
2015-10-15 19:00
scala
Scala-List
Scala学习笔记
21【Scala List之模式匹配实战】
packagecom.yl.Scala objectListTest{ defmain(args:Array[String]){ //声明方式1 valbigData=List("Hadoop","Spark") valdata=List(1,2,3) //声明方式2 valbigData2="Hadoop"::("Spark"::Nil)//结果和List("Hadoop","Spark")
y396397735
·
2015-10-15 15:00
scala
List模式匹配
Scala学习笔记
20【Scala 模式匹配之case class实战】
简单来说,Scala的caseclass就是在普通的类定义前加case关键字,然后你可以对这些类来模式匹配。caseclass带来的最大的好处是它们支持模式匹配。简单的caseclass模式匹配代码示例:packagecom.yl.Scala abstractclassPerson//定义抽象类Person caseclassStudent(age:Int)extendsPerson//cas
y396397735
·
2015-10-14 16:00
模式匹配
case-class
Scala学习笔记
19【Scala模式匹配入门实战】
1、Scala模式匹配入门packagecom.yl.Scala objectScalaTest{ defmain(args:Array[String]){ valnumber=3 numbermatch{//match关键字 case1=>println("Itis1.") case2=>println("Itis2.") case_=>println("Itisnot1or2.")//“_”
y396397735
·
2015-10-14 10:00
scala
模式匹配
scala模式匹配
Scala学习笔记
18【curry化函数代码示例】
packagecom.yl.Scala objectCurry{ defmain(args:Array[String]){ //curry化的函数被应用了多个参数列表,而不是仅仅一个。 //普通函数定义 defmutiple(x:Int,y:Int)=x*y println("mutiple(2,6)="+mutiple(2,6)) //curry化函数定义 //调用第一个函数并传入x,会
y396397735
·
2015-10-13 17:00
scala
Curry
curry化函数
Scala学习笔记
17【Scala偏函数】
packagecom.yl.Scala objectScalaTest{ defmain(args:Array[String]){ valaList=List(1,3,5,7,9) aList.foreach{x=>print(x)} println aList.foreach{print(_)}//“_”不是单个参数的占位符,它是整个参数列表的占位符。 println aList.forea
y396397735
·
2015-10-13 16:00
scala
偏函数
Scala学习笔记
16【Scala闭包代码实例】
packagecom.yl.scala objectTest{ defmain(args:Array[String]){ valdata=List(1,2,3,4,5) varsum=0 data.foreach(sum+=_) println("sum:"+sum) defaddFunction(more:Int)=(x:Int)=>more+x//more是个自由变量,x变量是一个绑定变
y396397735
·
2015-10-12 22:00
scala
闭包
Scala学习笔记
15【Scala文件操作】
实战代码示例:packagecom.yl.Scala importscala.io.Source importjava.io.PrintWriter importjava.io.File objectScalaFileTest{ defmain(args:Array[String]){ //读取文件 valfile=Source.fromFile("C:\\Leslie.txt") for(
y396397735
·
2015-10-10 14:00
Scala学习笔记
14【包、类、对象、成员、伴生类、伴生对象访问权限】
packagecom.yl.Scala packagespark{ packagenavigation{ private[spark]classNavigator{//private[spark]表示可见度在spark内部 protected[navigation]defuseStarChart(){}//protected[navigation]子类也可使用 classLegOfJourne
y396397735
·
2015-10-10 13:00
Scala学习笔记
13【trait之多重继承、AOP实战】
Scala多重继承Scala多重继承实战代码示例:classHuman{ println("Human") } //定义teacher特性 traitTTeacherextendsHuman{ println("TTeacher") defteach } //定义pianoplayer特性 traitPianoPlayerextendsHuman{ println("PianoPlayer")
y396397735
·
2015-10-10 11:00
AOP
scala
多重继承
Scala学习笔记
12【继承、抽象类、trait实战】
Scala继承代码示例:classFather(valname:String,valage:Int){ println("Fatherishere.") valschool="CSU" defsleepTime="8hours" //重定义已有方法,加上override overridedeftoString="Father." } //子类Son有自己的number成员,继承父类的(na
y396397735
·
2015-10-09 14:00
scala
继承
抽象类
trait
上一页
1
2
3
4
5
6
7
8
下一页
按字母分类:
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
其他