Scala Beginner】的更多相关文章

开始学习Scala,下面的内容大部分从Scala官网翻译过来,有几个地方翻译的不是很好,表述不清楚的地方大家可以浏览Scala官网,多指教. Scala offical website is http://scala-lang.org I think scala-lang means scalable language. What is Scala? 1.A Scalable Language(可扩展语言) Scala is an acronym for "Scalable Language&q…
from: Working with Scala's XML Support 虽然这个guy炒鸡罗嗦,但是还是讲到我要的那句话:  Because Scala doesn't support XML patterns with attributes. scala的模式匹配模式根本就不支持 属性 还是老老实实用XPath吧 XML is probably one of Scala's most controversial language features (right behind unrest…
在linux调试C/C++的代码需要通过gdb,调试java代码呢?那就需要用到jdb工具了.关于jdb的用法在网上大家都可以找到相应的文章,但是对scala进行调试的就比较少了.其实调试的大致流程都是一样的,只是需要注意一些细节的地方就可以了.下面就来简单说明一下.在这里关于scala和jdk的配置问题就不再详述了,下面进入正题吧. 首先放上调试用的scala代码hello.scala object hello { def main(args: Array[String]): Unit = {…
1, 在scala REPL中输入3. 然后按下tab键,有哪些方法可以被调用? 24个方法可以被调用, 8个基本类型: 基本的操作符, 等:     2,在scala REPL中,计算3的平方根,然后对该值求平方,现在这个结果跟3相差多少? scala.math.sqrt(3) res17: Double = 1.7320508075688772   scala.math.pow(res17,2) res18: Double = 2.9999999999999996   相差结果 3-res1…
你任说1个整数x,我任猜它的平方根为y,如果不对或精度不够准确,那我令y = (y+x/y)/2.如此循环反复下去,y就会无限逼近x的平方根.scala代码牛顿智商太高了println( sqr(10))  def sqr(n: Double )= { var k = 1.0; //可任取 while(Math.abs(k*k-n)>1e-9) //double不能用==比较 { k=(k+n/k)/2; } k }…
作者:Syn良子 出处:http://www.cnblogs.com/cssdongl 转载请注明出处 用Scala编码的时候,经常会遇到scala集合和Java集合互相转换的case,特意mark一下,加深记忆 scala.collection.Iterable <=> java.lang.Iterable scala.collection.Iterable <=> java.util.Collection scala.collection.Iterator <=>…
1. 引言 什么是规则引擎 一个业务规则包含一组条件和在此条件下执行的操作,它们表示业务规则应用程序的一段业务逻辑.业务规则通常应该由业务分析人员和策略管理者开发和修改,但有些复杂的业务规则也可以由技术人员使用面向对象的技术语言或脚本来定制.业务规则的理论基础是:设置一个或多个条件,当满足这些条件时会触发一个或多个操作. 规则引擎(rule engine)是指将复杂的业务逻辑抽象成规则,然后使用特定的算法(比如Rete)对规则进行求值等操作.简单点说,规则引擎就是实现复杂业务逻辑的框架. 为什么…
IDEA工具安装及scala基本操作 目录 一. 1. 2. 3. 4. 二. 1. 2. 3. 三. 1. 2. 3. 4. 5. 6. 7. 四. 1. (1) (2) (3) (4) (5) (6) (7) (8) 2. (1) (2)         for 循环 (3) (4) (5) 3. (1) (2) (3) (4) (5) 4. (1) (2) (3) 5. (1) (2) (3) (4) (5) 6. (1) (2) (3) (4) 7. 8. 9. (1) (2) (3)…
在上期讨论中我们介绍了Scala Macros,它可以说是工具库编程人员不可或缺的编程手段,可以实现编译器在编译源代码时对源代码进行的修改.扩展和替换,如此可以对用户屏蔽工具库复杂的内部细节,使他们可以用简单的声明方式,通过编译器自动产生铺垫代码来实现工具库中各种复杂的类型.对象及方法函数的构建.虽然Def Macros可能具备超强的编程功能,但同时使用者也普遍认为它一直存有着一些严重的诟病:包括用法复杂.容易犯错.运算行为难以预测以及没用完善的集成开发环境工具(IDE)支持等.这些恶评主要是因…
Scala Macros对scala函数库编程人员来说是一项不可或缺的编程工具,可以通过它来解决一些用普通编程或者类层次编程(type level programming)都无法解决的问题,这是因为Scala Macros可以直接对程序进行修改.Scala Macros的工作原理是在程序编译时按照编程人员的意旨对一段程序进行修改产生出一段新的程序.具体过程是:当编译器在对程序进行类型验证(typecheck)时如果发现Macro标记就会将这个Macro的功能实现程序(implementation…
反射reflection是程序对自身的检查.验证甚至代码修改功能.反射可以通过它的Reify功能来实时自动构建生成静态的Scala实例如:类(class).方法(method).表达式(expression)等.或者动态跟踪当前程序运算事件如:方法运算(method invocation).字段引用(field access)等.反射又分编译时段与运算时段反射即:compile-time-reflection及runtime-reflection.我们使用compile-time-reflect…
      变量 String yourPast = "Good Java Programmer"; val yourPast : String = "Good Java Programmer" val yourPast = "Good Java Programmer" var yourFuture = "Good Java Programmer" 自动类型推断:可变.不可变变量 class Money(amount:Int)…
包的绝对地址_root_.开始 如_root_.scala.collection.mutable.ArrayBuffer…
如果Scala定义变长参数 def sum(i Int*), 那么调用sum时,可以直接输入sum(1,2,3,4,5) 但是不可以sum(1 to 5) 必须要将1 to 5 强制为seq sum(1 to 5 :_*)…
Spark 是用Scala代码写的.为了调试Spark,做了如下尝试. 1.Eclipse下:Java 项目 ,Using Maven,编写了一个java 版Spark应用. Spark的代码(scala代码可以调试,但是查看变量极不方便,不忍直视,毕竟调试器时Java的,但代码是scala生成的字节码,还是有出入的). 2.Scala IDE下:Scala 项目,Using Maven,编写一个Scala版的Spark应用. 报找不到类的异常.解决该问题的方法是:http://scala-id…
解决办法:在 创建main文件夹和scala文件夹的时候,注意src与这两个文件夹不能同时设置为resources,否则就会产生报错,解决办法将src文件夹的resources取消,右键.…
Scala 访问修饰符基本和Java的一样,分别有:private,protected,public. 如果没有指定访问修饰符符,默认情况下,Scala对象的访问级别都是 public. Scala 中的 private 限定符,比 Java 更严格,在嵌套类情况下,外层类甚至不能访问被嵌套类的私有成员. 私有(Private)成员 用private关键字修饰,带有此标记的成员仅在包含了成员定义的类或对象内部可见,同样的规则还适用内部类. class Outer{ class Inner{ pr…
变量是一种使用方便的占位符,用于引用计算机内存地址,变量创建后会占用一定的内存空间. 基于变量的数据类型,操作系统会进行内存分配并且决定什么将被储存在保留内存中.因此,通过给变量分配不同的数据类型,你可以在这些变量中存储整数,小数或者字字母. 变量声明 在学习如何声明变量与常量之前,我们先来了解一些变量与常量. 一.变量: 在程序运行过程中其值可能发生改变的量叫做变量.如:时间,年龄. 二.常量: 在程序运行过程中其值不会发生变化的量叫做常量.如:数值 3,字符'A'. 在 Scala 中,使用…
Scala 与 Java有着相同的数据类型,下表列出了 Scala 支持的数据类型: Byte8位有符号补码整数.数值区间为 -128 到 127 Short16位有符号补码整数.数值区间为 -32768 到 32767 Int32位有符号补码整数.数值区间为 -2147483648 到 2147483647 Long64位有符号补码整数.数值区间为 -9223372036854775808 到 9223372036854775807 Float32位IEEE754单精度浮点数 Double64…
如果你之前是一名 Java 程序员,并了解 Java 语言的基础知识,那么你能很快学会 Scala 的基础语法. Scala 与 Java 的最大区别是:Scala 语句末尾的分号 ; 是可选的. 我们可以认为 Scala 程序是对象的集合,通过调用彼此的方法来实现消息传递.接下来我们来理解下,类,对象,方法,实例变量的概念: 对象 - 对象有属性和行为.例如:一只狗的状属性有:颜色,名字,行为有:叫.跑.吃等.对象是一个类的实例. 类 - 类是对象的抽象,而对象是类的具体实例. 方法 - 方法…
何为Scala物 Scala为基于JVM虚拟机中的面向对象与函数式编程思想并且完全兼容Java的混合编程语言,可以是Scala与Java是同根同源的,既然Scala与JAVA都是基于JVM之上的编程语言那么Scala的特色又在哪呢 Scala最大的特色就是他是支持函数式编程的,函数式编程风格使得Scala语法远比Java简洁.优雅.易读懂得多,又因为Scala支持函数式编程所以Scala也具有函数式编程中很重要的特性:不可变,所以使用Scala编写 并发程序会比在Java中简单得多:Scala原…
Scala中的 apply 方法有着不同的含义, 对于函数来说该方法意味着调用function本身, 以下说明摘自Programming in Scala, 3rd Edition Every function value is an instance of some class that extends one of several FunctionN traits in package scala, such as Function0 for functions with no parame…
隐士转换是Scala提供的一种语法糖 Implicit definitions are those that the compiler is allowed to insert into a program in order to fix any of its type errors. Sacla隐士转换的规则 Marking rule: Only definitions marked implicit are available Scope rule: An inserted implicit…
object TupleTest { def basic(firstName: String, lastName: String, age: Int): (String, String, Int) = (firstName, lastName, age) def main(args: Array[String]) { val member = basic("alex", "cao", 22) println("Hello, my name is "…
Scala官方提供了三种插件,分别支持Eclipse.NetBeans和Intellij IDEA开发环境.要在Eclipse IDE下安装Scala插件:选择Eclipse的菜单项Help-->Install New Software...,点击”Add按钮“,在Name和Location分别填入下面的值:Name:ScalaIDELocation:http://download.scala-ide.org/releases-29/stable/site然后一步步按步骤安装,直至安装完成.重启…
http://docs.scala-lang.org/tutorials/scala-with-maven.html https://github.com/davidB/scala-archetype-simple mvn archetype:generate net.alchim31.maven:scala-archetype-simple mvn package -Dmaven.test.skip=true mvn dependency:copy-dependencies mvn scala…
最近在看Apache Apollo 代码,其中有很多scala代码,没办法需要安装一个scala插件. 我试过zip 安装,直接下载的update-site.zip 不能直接安装到位.我又特别懒,不想复制文件夹. 所以我是通过help->install new software 安装.add 输入网址: 网址的连接从这里(官网)来(不要去看人家的blog ,特别是中文blog 都过时了): http://scala-ide.org/download/current.html 直接复制淡绿色背景网…
1. Translating Java Classes to Scala Classes Example 1: # a class declaration in Java public class Book{} # Scala equivalent of a class declaration class Book Example 2: # a Java class with a Construtor public class Book{ private final int isbn; priv…
1. Unified Type System Scala has a unified type system, enclosed by the type Any at the top of the hierarchy and the type Nothing at the bottom of the hierarchy. All Scala types inherit from Any. # Using Any, Book extends AnyRef, and x is an Int that…
A trait provides code reusability in Scala by encapsulating method and state and then offing possibility of mixing them into classes thus allowing code reuse. #define Trait Gliding scala> trait Gliding{ | def gliding(){ println("gliding")} |…