实例介绍
Scala程序设计 例子 源代码 Scala程序设计 例子 源代码 Scala程序设计 例子 源代码
【实例截图】
【核心代码】
4744302543461621280.zip
└── prog-scala-2nd-ed-code-examples-master
├── build.sbt
├── LICENSE
├── misc
│ ├── parthenon-payroll.txt
│ └── run-akka-input.txt
├── project
│ ├── build.properties
│ └── plugins.sbt
├── README.markdown
└── src
├── main
│ ├── java
│ │ └── progscala2
│ │ ├── basicoop
│ │ │ └── JPerson.java
│ │ ├── bigdata
│ │ │ ├── CascadingWordCount.javaX
│ │ │ └── HadoopWordCount.javaX
│ │ ├── fp
│ │ │ └── loops
│ │ │ └── Factorial.java
│ │ ├── javainterop
│ │ │ ├── ScalaFunctions.javaX
│ │ │ └── ScalaTuples.java
│ │ └── objectsystem
│ │ └── JavaArrays.java
│ ├── resources
│ │ ├── application.conf
│ │ └── logback.xml
│ └── scala
│ └── progscala2
│ ├── appdesign
│ │ ├── dbc
│ │ │ └── BankAccount.sc
│ │ └── parthenon
│ │ ├── Money.scala
│ │ └── PayrollUseCases.scala
│ ├── basicoop
│ │ ├── Complex.sc
│ │ ├── EmployeeSubclass.sc
│ │ ├── NestedTypes.scala
│ │ ├── PersonAuxConstructors2.sc
│ │ ├── PersonAuxConstructors3.sc
│ │ ├── PersonAuxConstructors3.scala
│ │ ├── PersonAuxConstructors.sc
│ │ ├── PersonAuxConstructors.scala
│ │ ├── PersonEmployeeTraits.sc
│ │ ├── PersonEmployeeTraits.scala
│ │ ├── ValueClassDollar.sc
│ │ ├── ValueClassPhoneNumber.sc
│ │ ├── ValueClassUniversalTraits.sc
│ │ ├── zipcode.sc
│ │ └── zipcode.scala
│ ├── bigdata
│ │ ├── ScaldingWordCount.scalaX
│ │ └── SparkWordCount.scalaX
│ ├── collections
│ │ ├── ListBuilder.sc
│ │ ├── parallel.sc
│ │ └── safeseq
│ │ ├── package.scala
│ │ └── safeseq.sc
│ ├── concurrency
│ │ ├── akka
│ │ │ ├── AkkaClient.scala
│ │ │ ├── Messages.scala
│ │ │ ├── ServerActor.scala
│ │ │ └── WorkerActor.scala
│ │ ├── async
│ │ │ └── async.sc
│ │ ├── futures
│ │ │ ├── future-callbacks.sc
│ │ │ └── future-fold.sc
│ │ └── process
│ │ └── processes.sc
│ ├── dsls
│ │ ├── payroll
│ │ │ ├── common.scala
│ │ │ ├── internal
│ │ │ │ └── dsl.scala
│ │ │ └── parsercomb
│ │ │ └── dsl.scala
│ │ └── xml
│ │ ├── reading.sc
│ │ └── writing.sc
│ ├── dynamic
│ │ ├── clinq-example.sc
│ │ └── clinq.scala
│ ├── forcomps
│ │ ├── for-eithers-good.sc
│ │ ├── for-eithers-seq.sc
│ │ ├── for-flatmap.sc
│ │ ├── for-foreach.sc
│ │ ├── for-guard.sc
│ │ ├── for-map.sc
│ │ ├── for-options-bad2.sc
│ │ ├── for-options-bad.sc
│ │ ├── for-options-good.sc
│ │ ├── for-options-seq.sc
│ │ ├── for-patterns.sc
│ │ ├── for-tries-good.sc
│ │ ├── for-tries-seq.sc
│ │ ├── for-validations-good-form.sc
│ │ ├── for-validations-good.sc
│ │ ├── for-variable.sc
│ │ ├── for-variable-translated.sc
│ │ ├── ref-transparency.sc
│ │ └── RemoveBlanks.scala
│ ├── fp
│ │ ├── basics
│ │ │ ├── hofs-closure2-example.sc
│ │ │ ├── hofs-closure3-example.sc
│ │ │ ├── hofs-closure-example.sc
│ │ │ └── hofs-example.sc
│ │ ├── categories
│ │ │ ├── for-eithers-steps.sc
│ │ │ ├── for-options-steps.sc
│ │ │ ├── for-tries-steps.sc
│ │ │ ├── functor.sc
│ │ │ ├── functor.scala
│ │ │ ├── monad.sc
│ │ │ └── monad.scala
│ │ ├── combinators
│ │ │ ├── combinators.sc
│ │ │ └── payroll.sc
│ │ ├── curry
│ │ │ ├── curried-func2.sc
│ │ │ ├── curried-func.sc
│ │ │ ├── lifted-func.sc
│ │ │ └── tupled-func.sc
│ │ ├── datastructs
│ │ │ ├── fibonacci.sc
│ │ │ ├── filter.sc
│ │ │ ├── flatmap.sc
│ │ │ ├── fold-assoc-funcs.sc
│ │ │ ├── fold-impl.sc
│ │ │ ├── fold-map.sc
│ │ │ ├── foldreduce.sc
│ │ │ ├── fold-vector-impl.sc
│ │ │ ├── foreach.sc
│ │ │ ├── list.sc
│ │ │ ├── map.sc
│ │ │ ├── package.scala
│ │ │ ├── seq.sc
│ │ │ ├── set.sc
│ │ │ └── vector.sc
│ │ ├── implicits
│ │ │ ├── implicit-conversion.sc
│ │ │ ├── implicit-parameter.sc
│ │ │ └── implicit-richstring.sc
│ │ └── recursion
│ │ ├── factorial-recur1.sc
│ │ ├── factorial-recur2.sc
│ │ └── trampoline.sc
│ ├── implicits
│ │ ├── custom-string-interpolator.sc
│ │ ├── implicit-args.sc
│ │ ├── implicit-conversions-resolution2.sc
│ │ ├── implicit-conversions-resolution.sc
│ │ ├── implicit-conversions.sc
│ │ ├── implicit-erasure.sc
│ │ ├── implicitly-args.sc
│ │ ├── java-database-api.scala
│ │ ├── phantom-types-pipeline.scala
│ │ ├── phantom-types.scala
│ │ ├── scala-database-api.scala
│ │ ├── toJSON-type-class.sc
│ │ ├── type-classes-subtyping2.sc
│ │ └── type-classes-subtyping.sc
│ ├── introscala
│ │ ├── shapes
│ │ │ ├── ShapesActorDriver.scala
│ │ │ ├── ShapesDrawingActor.scala
│ │ │ └── shapes.scala
│ │ ├── upper1.sc
│ │ ├── upper1.scala
│ │ ├── upper2.sc
│ │ └── upper2.scala
│ ├── javainterop
│ │ ├── AllOpChars.scala
│ │ └── ComplexBean.scala
│ ├── metaprogramming
│ │ ├── func.sc
│ │ ├── invariant.scala
│ │ ├── match-types.sc
│ │ ├── match-type-tags.sc
│ │ ├── mkArray.sc
│ │ ├── quasiquotes.sc
│ │ └── reflect.sc
│ ├── objectsystem
│ │ ├── CommandArgs.scala
│ │ ├── equality
│ │ │ └── person-equality.sc
│ │ ├── linearization
│ │ │ ├── linearization1.sc
│ │ │ ├── linearization2.sc
│ │ │ ├── linearization3.sc
│ │ │ ├── linearization4.sc
│ │ │ └── value-class-universal-traits.sc
│ │ ├── objects
│ │ │ └── person.scala
│ │ ├── overrides
│ │ │ ├── class-abs-field.sc
│ │ │ ├── class-field.sc
│ │ │ ├── final-class.scalaX
│ │ │ ├── final-member.scalaX
│ │ │ ├── payroll-template-method.sc
│ │ │ ├── trait-bad-init-val.sc
│ │ │ ├── trait-lazy-init-val.sc
│ │ │ └── trait-pre-init-val.sc
│ │ ├── ui
│ │ │ ├── button.sc
│ │ │ ├── button.scala
│ │ │ ├── ObservableClicks.scala
│ │ │ ├── RadioButton.scala
│ │ │ ├── TextField.scala
│ │ │ ├── vetoable-clicks.sc
│ │ │ ├── vetoable-clicks-uap.sc
│ │ │ └── widget.scala
│ │ └── variance
│ │ ├── func.scX
│ │ └── mutable-type-variance.scX
│ ├── patternmatching
│ │ ├── http.sc
│ │ ├── infix.sc
│ │ ├── match-boolean.sc
│ │ ├── match-deep2.sc
│ │ ├── match-deep.sc
│ │ ├── match-deep-tuple.sc
│ │ ├── match-fun-args.sc
│ │ ├── match-guard.sc
│ │ ├── match-list.sc
│ │ ├── match-regex.sc
│ │ ├── match-reverse-seq.sc
│ │ ├── match-seq-parens.sc
│ │ ├── match-seq.sc
│ │ ├── match-seq-unapplySeq.sc
│ │ ├── match-seq-without-unapplySeq.sc
│ │ ├── match-surprise-fix.sc
│ │ ├── match-surprise.sc
│ │ ├── match-tuple.sc
│ │ ├── match-types2.sc
│ │ ├── match-types.sc
│ │ ├── match-vararglist.sc
│ │ ├── match-variable2.sc
│ │ ├── match-variable3.sc
│ │ ├── match-variable.sc
│ │ ├── regex-assignments.sc
│ │ └── scoped-option-for.sc
│ ├── rounding
│ │ ├── assigned-if.sc
│ │ ├── basic-for.sc
│ │ ├── call-by-name.sc
│ │ ├── days-enumeration.sc
│ │ ├── double-guard-for.sc
│ │ ├── do-while.sc
│ │ ├── enumeration.sc
│ │ ├── generator.sc
│ │ ├── guard-for.sc
│ │ ├── if.sc
│ │ ├── lazy-init-val.sc
│ │ ├── no-dot-better.sc
│ │ ├── scalatest.scX
│ │ ├── scoped-for.sc
│ │ ├── scoped-option-for.sc
│ │ ├── traits.sc
│ │ ├── TryCatchArm.scala
│ │ ├── TryCatch.scala
│ │ ├── while.sc
│ │ └── yielding-for.sc
│ ├── toolslibs
│ │ ├── complex.scala
│ │ ├── example.sc
│ │ ├── ScriptWrapper.scala
│ │ ├── secho
│ │ └── secho.bat
│ ├── traits
│ │ ├── observer
│ │ │ └── observer.scala
│ │ ├── trait-construction.sc
│ │ ├── ui
│ │ │ ├── ButtonCallbacks.scala
│ │ │ ├── button-count-observer2.sc
│ │ │ ├── button-count-observer.sc
│ │ │ ├── button.scala
│ │ │ ├── ObservableButton.scala
│ │ │ └── widget.scala
│ │ └── ui2
│ │ ├── button.scala
│ │ ├── clickable.scala
│ │ ├── click-count-observer.sc
│ │ ├── ObservableClicks.scala
│ │ ├── vetoable-click-count-observer.sc
│ │ └── VetoableClicks.scala
│ ├── typelessdomore
│ │ ├── abstract-types.sc
│ │ ├── count-to.sc
│ │ ├── factorial.sc
│ │ ├── factorial-tailrec.sc
│ │ ├── fibonacci-tailrec.scX
│ │ ├── futures.sc
│ │ ├── implicit-strings.sc
│ │ ├── map-get.sc
│ │ ├── method-broad-inference-return.sc
│ │ ├── method-broad-inference-return.scX
│ │ ├── method-nested-return.scX
│ │ ├── method-overloaded-return-v1.scX
│ │ ├── method-overloaded-return-v2.sc
│ │ ├── method-overloaded-return-v3.sc
│ │ ├── method-recursive-return.sc
│ │ ├── multiline-strings2.sc
│ │ ├── multiline-strings.sc
│ │ ├── package-example1.scala
│ │ ├── package-example2.scala
│ │ ├── package-example3.scala
│ │ ├── parameterized-types.sc
│ │ ├── partial-functions.sc
│ │ ├── person.sc
│ │ ├── ranges.sc
│ │ ├── relative-imports.scala
│ │ ├── semicolon-example.sc
│ │ ├── shapes
│ │ │ └── shapes.scala
│ │ ├── state-capitals-map-decl.sc
│ │ ├── state-capitals-subset.sc
│ │ └── tuple-example.sc
│ ├── typesystem
│ │ ├── abstracttypes
│ │ │ ├── abstract-types-ex.sc
│ │ │ └── SubjectObserver.scalaX
│ │ ├── bounds
│ │ │ ├── list
│ │ │ │ ├── AbbrevList.scala
│ │ │ │ └── list-ab.sc
│ │ │ ├── lower-bounds2.sc
│ │ │ ├── lower-bounds.sc
│ │ │ ├── view-bounds.sc
│ │ │ └── view-to-context-bounds.sc
│ │ ├── dependentmethodtypes
│ │ │ └── dep-method.sc
│ │ ├── existentials
│ │ │ └── type-erasure-workaround.sc
│ │ ├── higherkinded
│ │ │ ├── add1.sc
│ │ │ ├── add.sc
│ │ │ ├── add.scala
│ │ │ ├── add-seq.sc
│ │ │ ├── reduce1.scala
│ │ │ └── reduce.scala
│ │ ├── lazy
│ │ │ ├── lazy-fibonacci.sc
│ │ │ └── lazy-ints.sc
│ │ ├── recursivetypes
│ │ │ └── f-bound.sc
│ │ ├── selftype
│ │ │ ├── ButtonSubjectObserver.sc
│ │ │ ├── ButtonSubjectObserver.scala
│ │ │ ├── selftype-cake-pattern.sc
│ │ │ ├── SubjectObserver.scala
│ │ │ └── this-alias.sc
│ │ ├── shapes
│ │ │ └── shapes.scala
│ │ ├── structuraltypes
│ │ │ ├── observer.sc
│ │ │ ├── observer.scala
│ │ │ ├── SubjectFunc.sc
│ │ │ └── SubjectFunc.scala
│ │ ├── typelambdas
│ │ │ ├── Functor.sc
│ │ │ └── Functor.scala
│ │ ├── typepaths
│ │ │ ├── path-expressions.scala
│ │ │ └── type-path.scalaX
│ │ └── valuetypes
│ │ ├── curried-function.sc
│ │ ├── infix-types.sc
│ │ ├── object-types.sc
│ │ ├── type-projection.sc
│ │ ├── type-projection.scala
│ │ └── type-types.sc
│ └── visibility
│ ├── private-pkg.scalaX
│ ├── private-pkg-type.scalaX
│ ├── private.scalaX
│ ├── private-this-pkg.scalaX
│ ├── private-this.scalaX
│ ├── private-type-nested.scalaX
│ ├── private-type.scalaX
│ ├── protected.scalaX
│ ├── public.scala
│ └── scope-inheritance.scalaX
└── test
├── java
│ └── progscala2
│ └── javainterop
│ └── SMapTest.java
└── scala
└── progscala2
├── dsls
│ └── payroll
│ ├── internal
│ │ └── DSLSpec.scala
│ └── parsercomb
│ └── DSLSpec.scala
├── fp
│ └── categories
│ ├── FunctorProperties.scala
│ └── MonadProperties.scala
├── metaprogramming
│ └── InvariantSpec.scala
├── tools
│ ├── ComplexProperties.scala
│ ├── ComplexSpecs2.scala
│ ├── ComplexSpec.scala
│ └── ComplexSuite.scala
└── typesystem
└── bounds
└── list
└── AbbrevListSpec.scala
97 directories, 323 files
标签:
相关软件
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论