Scala循环操作】的更多相关文章

val buf = new scala.collection.mutable.ArrayBuffer[Int] for (i <- 0 to 10) { buf += i } buf += 11 buf.foreach(u =>println(u + "\t")) val bufPerson = new scala.collection.mutable.ArrayBuffer[Person] for (i <- 0 to 10) { bufPerson += new…
我的确认为计算机学院应该开一门 Scala 的语言课程. 在这篇文章中,我会讲述为什么我会有这样的想法,在此之前,有几点我想要先声明一下: 本文无意对编程语言进行评比,我要讲述的主体是为什么你应该学习 Scala.51CTO之前曾发布过一篇 Java 程序员为何要学习Scala的文章,可能也会对你有所帮助. 目前 Scala 有两个实现方式,一种是在 JVM(Java 虚拟机)上运行,另一种是在 CLR(Common Language Runtime 的缩写,即公共语言运行库)上运行.不过,JV…
目录[-] 1.   Scala有多cool 1.1.     速度! 1.2.     易用的数据结构 1.3.     OOP+FP 1.4.     动态+静态 1.5.     DSL 1.6.     够复杂 1.7.     够有趣 1.8.     开发社区 2.   lang 2.1.     和Java的异同 2.1.1.  语法 2.1.2.  库 2.2.     变量 2.2.1.  保留字 2.2.2.  变量标识 2.2.3.  变量定义 2.2.3.1     va…
[<快学Scala>笔记] 一.基础 1.变量val 标志符: 声明常量: 如,val answer = 1var 标志符:声明变量: 类型推断:变量的类型由scala根据初始化变量的表达式推断而来: 鼓励使用val: 注:声明变量时不做初始化会报错. 明确类型: scala的变量或函数的类型总是写在变量或函数的后面. val a:Int = 1 val str:String = 2 2.常用类型 Scala支持7种数值类型和1种Boolean类型. Byte/Char/Short/Int/L…
一.输出 println("Hello World") 二.变量与常量 1.变量用var表示,常量使用val表示 2.变量类型声明 var variableName : DateType [=Init Value] var x:String = "fonxian" 3.多个变量声明 var x,y = 100 4.元组 var x = ("x",18) 二.数据类型 scala不对基本数据类型和包装数据类型做区分,这两种数据类型是由scala编译…
今天学习下list中的ListBuffer实现的高效计算.让我们先来看下代码 def main(args:Array[String]){        val list = List(1,2,3,4,5,6,7,8,9)    increment(list)    increment_MoreEffective(list)    increment_MostEffective(list)  }    def increment(list:List[Int]):List[Int] = list m…
Spark 选择 Scala 作为开发语言 在 Spark 诞生之初,就有人诟病为什么 AMP 实验室选了一个如此小众的语言 - Scala,很多人还将原因归结为学院派的高冷,但后来事实证明,选择 Scala 是非常正确的,Scala 很多特性与 Spark 本身理念非常契合,可以说它们是天生一对. Scala 背后所代表的函数式编程思想也越来越为人所知. 函数式编程思想早在 50 多年前就被提出,但当时的硬件性能太弱,并不能发挥出这种思想的优势.目前多核 CPU 大行其道,函数式编程在并发方面…
在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然后一步步按步骤安装,直至安装完成.重启…