scala

Scala代码实现列出Hadoop文件夹下面的所有文件 2015-12-14

列出Hadoop文件夹下面的所有文件,如果子文件是一个文件夹,则递归列出里面的文件,返回一个Path数组. import java.io.IOException import org.apache.hadoop.fs.{FileSystem, FileStatus, Path} import org.apache.hadoop.conf.Configuration object FullFile {   @throws[IOException]   def recursiveListFiles(

scala中99乘法表与java中99乘法表对比 2015-11-25

scala版本放入99乘法表 package org.funmo.scala object HelloScala {   def main(args: Array[String]) {     for (i <- 1 to 9) {       for (j <- 1 to i) {         printf("%s*%s \t", i, j)       }       print("\n")      }   } } java版本的99乘法表 p

为什么scala中main方法必须放在object中 2015-11-25

今天写了第一个scala程序,如下: package org.funmo.scala class helloworld {   def main(args:Array[String]){     println("helloworld")   } } 本来打算运行的,但是"右键-run as"中没有"scala application"选项,很是纳闷,查了半天看到这么一个版本,如下: package org.funmo.scala object 

Scala高阶函数(high-orderfunction)剖析 2015-06-30

Scala 是一种函数式编程语言,也就是说每一个函数都是一个值.Scala 有很简洁的语法用于定义匿名函数.curry 化函数(curried function).应用函数.偏函数以及嵌套函数等.函数式编程由数学函数演变得来,包含大量诸如串联与并联.组合与分离.协变与逆变等一系列概念.本文将就如何实现高阶函数进行阐述,其他部分内容不进行深究. 类型参数化协变与逆协变 类型参数化(type parameterization)由类型协变性(Type variance)补充构成,类型协变性的机制则是在

ScalaUTF-8方式读取属性文件,支持克隆 2015-05-07

ScalaUTF-8方式读取属性文件,支持克隆
/** Xiaohei's Devlopment Stdio */ package com.ldg.util import java.util.concurrent.ConcurrentHashMap import scala.io.Source import com.typesafe.config.ConfigFactory /**  * @author 李代崗  * @ve ...

Scala类型6:复合类型&with关键字 2015-03-24

with 关键字: class A extends B with C with D with E 解读方式: class A extends (B with C with D with E) (B with C with D with E)首先是一个整体,再由 A 去继承. 注:对于Java中的菱形继承问题:Scala的解决策略是: 1. 继承class混入trait:(extends SuperClass with subClass|subTrait with - ) 必须是一个继承链(左->

泛函编程6-数据结构-List基础 2015-03-10

    List是一种最普通的泛函数据结构,比较直观,有良好的示范基础.List就像一个管子,里面可以装载一长条任何类型的东西.如需要对管子里的东西进行处理,则必须在管子内按直线顺序一个一个的来,这符合泛函编程的风格.与其它的泛函数据结构设计思路一样,设计List时先考虑List的两种状态:空或不为空两种类型.这两种类型可以用case class 来表现: trait List[+A] {} case class Cons[+A](head: A, tail: List[A]) extends 

泛函编程4-深入Scala函数类 2015-03-09

既然是泛函编程,多了解一下函数自然是免不了的了: 方法(Method)不等于函数(Function) 方法不是函数但可以转化成函数:可以手工转换或者由编译器(compiler)在适当的情况下自动转换.反向转换则不然:函数是无法转换到方法的.先看看下面的例子: scala> def aMethod(x: Int): Int = x + 10 aMethod: (x: Int)Int scala> val aFunction = (x: Int) => x + 10 aFunction: I

泛函编程3-认识Scala和泛函编程 2015-03-09

     接着昨天的文章,再示范一个稍微复杂一点的尾递归tail recursion例子:计算第n个Fibonacci数.Fibonacci数第一.第二个数值分别是0,1,按顺序后面的数值是前面两个数的加合.例如:0,1,1,2,3,5...   def fib(n: Int): Int = {     @annotation.tailrec    def go(cnt: Int, prev: Int, cur: Int): Int = cnt match {      case m if (m

scala基础篇-stackoverflow 2015-02-26

1. 类的属性(字段)和方法是否可以同名? no. Scala为类的定义准备了两个命名空间,而Java有四个,分别是字段.方法.类型.包.Scala的两个命名空间是: 值(字段,方法,包还 有单例对象) 类型(类和特质名)

notepadd++配置Scala运行环境 2014-07-02

notepadd++配置Scala运行环境
Window7 下 notepadd++配置Scala运行环境 1.安装notepad++ 2.在notepad++中安装nppexec插件 3.下载Scala最新版,解压到某目录,在环境变量中加入 SCALA_HOME,在控制台验证 scala 4.在notepad++ 中编辑一段Scala 代码,保存然后一次点击         插件   ->    NppExec ...

Scala学习笔记2:开发环境的搭建 2013-04-29

下载和安装Scala 前往http://www.scala-lang.org/downloads 下载Scala在各个平台的安装包,安装后即可在运行scala编译器和交互式命令行环境(interactive interpreter).除此之外为了更加方便地编程,可以选择安装以下工具: 安装编译工具Sbt,Sbt类似于Java的Ant,http://www.scala-sbt.org/release/docs/Getting-Started/Setup.html 安装独立的Scala IDE(ht

用Scala开发SpringMVC 2013-04-17

用Scala开发SpringMVC
      最近尝试用scala来写spring应用.工程是通过ant来编译部署的,因为通过eclipse直接部署到tomcat的话,scala文件不会被编译.后来才发现Spring已经有一个在开发中的项目 Spring Scala.后面有时间会尝试使用一下 环境及工具:eclipse4.2,eclipse scala-2.10插件,spring3.1.2.RELEASE,to ...

在Idea中测试各JVM语言的交互性 2013-03-09

背景:     假设出现这样的场景,一个Java项目中,需要用其他语言来编写相关模块,但需要能被Java调用 测试工具:Idea12 测试语言:Groovy.Scala.Kotlin 测试方法:在Java代码中调用其他语言的类方法(类方法分别写在Java模块,及其语言的特定模块中),类方法中调用JFinal的ActiveRecord来操作数据库 测试结果: 1.Groovy与Java有极佳交互性,各种用法都完全没问题.唯一不爽Groovy是动态语言,缺少编译来发现各种拼写错误,虽然Idea已经有

Scala重写Java方法问题记录1-参数列表中的Object和Object 2013-02-24

Java方法签名: protected abstract DB createResource(Object owner, String iDatabaseName, Object... iAdditionalArgs); (DB为类中声明的类型参数,其中与Scala代码不同的有 protected,Scala的作用于比Java中更小 Object,Scala中Any,AnyRef都是Object类型的,classOf[Any],classOf[AnyRef]的结果都是Object 可变参数Obj

sbt笔记六MoreKindsofSetting待续 2013-01-28

http://www.scala-sbt.org/release/docs/Getting-Started/More-About-Settings.html Refresher: Settings 记住,构建定义创建一个Setting列表,然后这个列表用于转换sbt的构建描述(它是键值对的映射).一个Setting是一个将sbt早先的映射作为输入.一个新的映射作为输出的转换.这个新映射作为sbt的新状态. 不同的setting通过不同的方式转换这个映射.早些时候,你已经读到:=方法了. :=创建

Java8和Scala中的高阶函数,可重用的构建快 2012-07-13

这篇文章是infoQ上面关于java 8 和 scala 特性比较的一部分,原文实在是太长了,,分段翻译,先贴出来一部分,翻译的不好,欢迎拍砖...原文地址 函数文本最大的优势就是可以像字符串或者对象等其他文本(literal)一样传送它.这种特性为构建高度紧凑和可重用代码提供无限的可能性. 1.我们的第一个高阶函数 当我们将一个函数文本传送给一个方法的时候,我们最主要的是一个接收方法参数的方法(这个确实很绕-_-|||),这类方法就叫做高阶函数.上文Swing例子中提到的 addActionL

Java8和Scala中的Lambda表达式 2012-07-11

这篇文章是infoQ上面关于java 8 和 scala 特性比较的一部分,原文实在是太长了,,分段翻译,先贴出来一部分,翻译的不好,欢迎拍砖...原文地址  Java8 终于要支持Lambda表达式!自2009年以来Lambda表达式已经在Lambda项目中被支持.在那时候,Lambda表达式仍被称为Java闭包.在我们进入一些代码示例以前,先来解释下为什么Lambda表达式在Java程序员中广受欢迎. 1.为什么使用Lambda表达式 Lambda表达式通常使用在图形用户界面(GUI)的开发
一周排行