Scala入门】的更多相关文章

前言 本篇主要讲Scala的Array.BufferArray.List,更多教程请参考:Scala教程 本篇知识点概括 若长度固定则使用Array,若长度可能有 变化则使用ArrayBuffer 提供初始值时不要使用new,复杂对象数组没有提供初始值时必须提供new 用()来访问元素 用for(elem <- arr)来遍历数组 用for(elem <- arr if...)...yield...来将原数组转型为新数组 Scala数组和Java数组可以互操作 数组 1.定长数组定义: //定…
Scala入门 [1] 转载请注明出处:http://www.cnblogs.com/BYRans/ 1 基础 val定义的为常量,var为变量 val name:Type = ***,变量名后加冒号,然后定义变量类型 Scala有7种数值类型:Byte.Char.Short.Int.Long.Float和Double,以及一个Boolen类型. Scala支持语法:a 方法 b,或者简写为:a.方法(b)例如: 1 to 10 或者 1.to(10) 产出Range(1, 2, 3, 4, 5…
Scala入门(1)Linux下Scala(2.12.1)安装 一.文件准备 1.1 文件名称 scala-2.12.1.tgz 1.2 下载地址 http://www.scala-lang.org/download/2.12.1.html 二.工具准备 2.1 Xshell 一个强大的安全终端模拟软件,它支持SSH1, SSH2, 以及Microsoft Windows 平台的TELNET 协议. Xshell 通过互联网到远程主机的安全连接以及它创新性的设计和特色帮助用户在复杂的网络环境中享…
scala 入门Eclipse环境搭建及第一个入门经典程序HelloWorld IDE选择并下载: scala for eclipse 下载: http://scala-ide.org/download/sdk.html 根据自己的机器配置选择合适的IDE: 我这里选择For scala2.11 版本的Windows 32 bit的IDE,单击即下载. scala安装: 安装包下载地址,进入官网:http://www.scala-lang.org/ 进入DOWNLOAD下,选择scala 2.1…
Scala 入门详解 基本语法 Scala 与 Java 的最大区别是:Scala 语句末尾的分号 ; 是可选的 Scala 程序是对象的集合,通过调用彼此的方法来实现消息传递.类,对象,方法,实例变量的概念: 对象 - 对象有属性和行为.例如:一只狗的状属性有:颜色,名字,行为有:叫.跑.吃等.对象是一个类的实例. 类 - 类是对象的抽象,而对象是类的具体实例. 方法 - 方法描述基本的行为,一个类可以包含多个方法. 字段 - 每个对象都有它唯一的实例变量集合,即字段.对象的属性通过给字段赋值…
Scala开发环境的搭建 首先到Scala官网下载Scala网址为 https://www.scala-lang.org/download/ 找到下图所示位置:选择相对应的版本的Scala进行下载,这里以window为例: 下载完成后安装Scala,这里一路Next即可. Scala环境变量的配置 如下图所示: 点击path配置如下的路径(如下图所示) 然后点击下图3个对话框的确定: 然后在使用CMD输入scala -version验证Scala安装是否成功,需要注意的是Scala需要依赖JDK…
IntelliJ IDE中的Scala入门 创建项目 打开IntelliJ并单击File => New => Project 在左侧面板中,选择Scala.在右侧面板中,选择IDEA. 将项目命名为HelloWorld 假设这是您第一次使用IntelliJ创建Scala项目,则需要安装Scala SDK.在Scala SDK字段的右侧,单击“ 创建”按钮. 选择最高版本号(例如2.12.2),然后单击“ 下载”.这可能需要几分钟,但后续项目可以使用相同的SDK. 创建SDK并返回“新建项目”窗…
原文出自于: http://my.csdn.net/lovehuangjiaju 感谢! 也感谢,http://m.blog.csdn.net/article/details?id=52233484 这是本人收集的Scala学习资料,觉得还不错.转载比较费事,所以就只给链接了.顺便做个目标,方便好找. 搭建Scala开发环境: 01.Intellij IDEA 14.1.4 Scala开发环境搭建     Scala入门到精通: 01.Scala入门到精通——第一节 Scala语言初步 02.S…
scala 入门Eclipse环境搭建及第一个入门经典程序HelloWorld 学习了: http://blog.csdn.net/wangmuming/article/details/34079119…
/** * 函数可以被简单的被认为是包裹了一条或者几条语句的代码体,该代码体接收若干参数,经过代码体处理后返回结果,形如数学中的f(x) = x + 1 * 在Scala中函数式一等公民,可以向变量一样被传递,被赋值,同时函数可以赋值给变量,变量也可以赋值给函数,之所以可以是这样,原因在于 * 函数背后是类和对象,也就是说在运行的时候函数其实是一个变量!!!当然,背后的类是Scala语言自动帮助我们生成的,且可以天然的被序列化和 * 反序列化,这个意义非常重要: * 意义1:可以天然的序列化和反…
一.概述 1.什么是akka Akka基于Actor模型,提供了一个用于构建可扩展的(Scalable).弹性的(Resilient).快速响应的(Responsive)应用程序的平台. 更多入门的基础与介绍,参考:https://www.iteblog.com/archives/1154.html 入门系列推荐:http://www.cnblogs.com/tiger-xc/p/6785575.html akka官网:https://akka.io/ 2.Actor模型 Actor模型:在计算…
注:我们现在学的Scala Actor是scala 2.10.x版本及以前版本的Actor. Scala在2.11.x版本中将Akka加入其中,作为其默认的Actor,老版本的Actor已经废弃 一.概述 1.什么是actor Scala的Actor类似于Java中的多线程编程.但是不同的是,Scala的Actor提供的模型与多线程有所不同.Scala的Actor尽可能地避免锁和共享状态,从而避免多线程并发时出现资源争用的情况,进而提升多线程编程的性能.此外,Scala Actor的这种模型还可…
一.Hello World程序的执行原理 参考http://blog.csdn.net/zhangjg_blog/article/details/22760957 object HelloWorld{ def main(args : Array[String]){ println("HelloWorld") } } 以object关键字修饰的一个雷鸣,这种语法叫做孤立对象,这个对象是单例的.相当于将单例类和单例对象同时定义.(即这个类不能再创建一个实例,在类初始化的时候有., 就会创建…
object作为Scala中的一个关键字,相当于Java中的public static class这样的一个修饰符,也就说object中的成员都是静态的! 所以我们在这个例子中的main方法是静态的,不需要类的实例就可以直接被虚拟机调用,而这正是作为JVM平台上程序入口的必备条件: 疑问:object是不是一个对象(此时,你肯定是从Java的角度是考虑),事实是object是Scala中的静态类,不是对象  从Spark的Master和Worker的源码中我们都发现了其入口的main方法是在ob…
package com.dtspark.scala.basics /** * Scala中的基本控制结构有顺序.条件和循环三种方式,这个其它的JVM语言是一致的,但是Scala也有一些高级的流程控制结构类模式匹配: * 在这里我们主要if.for.while等三种控制结构及其企业级最佳实践,并且在最后用Spark源码说明 * */ object ControlStructures { def main(args: Array[String]): Unit = { println("Scala&q…
/** * 函数式编程进阶: * 1,函数和变量一样作为Scala语言的一等公民,函数可以直接赋值给变量: * 2, 函数更长用的方式是匿名函数,定义的时候只需要说明输入参数的类型和函数体即可,不需要名称,但是如果你要使用的话,一般会把这个匿名函数赋值给一个变量(其实是val常量),Spark源码中大量存在这种语法,必须掌握: * 3, 函数可以作为参数直接传递给函数,这极大的简化的编程的语法,为什么这样说呢?原因非常简单: *      第一:以前Java的方式是new出一个接口实例,并且在接…
/** * 大数据技术是数据的集合以及对数据集合的操作技术的统称,具体来说: * 1,数据集合:会涉及数据的搜集.存储等,搜集会有很多技术,存储现在比较经典的是使用Hadoop,也有很多情况使用Kafka: * 2,对数据集合的操作技术:目前全球最火爆的是Spark: * * Spark的框架实现语言是Scala,首选的应用程序开发语言也是Scala,所以Scala对集合以及集合操作的支持就至关重要且必须异常强大: * 一个补充说明是:可能是巧合,Spark中对很多数据的操作的算子和Scala中…
我们知道scala中一切皆为对象,函数也是对象,数字也是对象,它是一个比java还要面向对象的语言. 定义scala的简单类 class Point (val x:Int, val y:Int) 上面一行代码就是一个scala类的定义: 首先是关键字class 其后是类名 Point 类名之后的括号中是构造函数的参数列表,这里相当于定义了对象的两个常量,其名称分别为x,y,类型都是Int 上面的类和下面的类是一致的,不过更精简了. class Point (xArg:Int, yArg:Int)…
前言 本篇将介绍一个和Array很相似的集合List,更多内容请参考:Scala教程 本篇知识点概括 List的构造 List与Array的区别 List的常用方法 List伴生对象的方法 ::和:::操作符的介绍 Scala中使用List Scala是函数式风格与面向对象共存的编程语言,方法不应该有副作用是函数风格编程的一个重要的理念.方法唯一的效果应该是计算并返回值,用这种方式工作的好处就是方法之间很少纠缠在一起,因此就更加可靠和可重用.另一个好处(静态类型语言)是传入传出方法的所有东西都被…
搭建环境请参考: http://www.cnblogs.com/super-d2/p/4534208.html 1.交互式编程: adeMacBook-Pro:ssdb-master apple$ scala Welcome to Scala version (Java HotSpot(TM) -Bit Server VM, Java 1.7.0_71). Type in expressions to have them evaluated. Type :help for more inform…
Come From: http://lidrema.blog.163.com/blog/static/209702148201461145859142/ Scala: 一种类似java的编程.集成了面向对象(Object-Oriented)编程和函数式(Functional  programming )编程的特性,利于开发多核并发模型以及云计算(parallelism  for  mulicore  and  cloud  computing ). 参考书目:<快学Scala>,author:…
scala 无论从数组的定义还是操作方面来说都跟java非常相似,但又有其独特的强大之处… 1. 定长数组 对于长度不变的数组,可以用scala中的Array. //scala 里使用new实例化对象. 实例化过程中,可以用值和类型使对象参数化(创建对象的同时完成对它的设置) val nums = new Array[Int](5); //含5个整数的数组,元素默认初始化为0: val arr = new Array[String](10);  //含10个字符串的数组,元素默认初始化为null…
大数据“火”的有段日子了,原来打算学习hadoop…… 后知道spark要比hadoop更牛, 故而转学spark.其原码为scala所写,为了更好的研究spark,故又开始学习scala. 将自己所学记录在此,不为点赞, 只为加深记忆,加深理解…不是都说写一遍等于读十遍嘛…… 1.基本类型: Byte 8位有符号补码整数 Short 16位有符号补码整数 Int 32位有符号补码整数 Long 64位有符号补码整数 Char 16位无符号Unicode字符 String char序列 Floa…
最近在学习使用Scala语言做项目,感觉这门语言实在是太优美了!作为一个本科数学.研究生机器学习专业的混合人才(哈哈),这门语言真的是满足了普通计算机编程(告诉计算机怎么做)和函数式编程(告诉计算机做什么)的所有幻想.学了半个多月,根本停不下来!先来做个总结: 语法简洁,往往比Java少至少一半的代码量.比如: 支持自动类型判断,可以省去很多类型标志. e.g.  val x = 2 用伴生对象来生成类,省去new的麻烦.e.g. val cat = Cat("Hello Ketty"…
[TOC] 标识符 可用的字符 处理括号类字符,分隔符之外,其他所有的可打印的ASCII字符,如字母,数字,下划线和美元符号($)均可出现在Scala标识符中 插入符包括了(,) [,] {,and} 分隔符包括 ` ' " . ; ,等 Scala还允许在标识符中使用编码在 \u0020到\u007F之间的字符,如数学符号,想 / 和 < 这样的操作符字符以及其他的一些符号 不能使用保留字. 普通标识符 常见的标识符往往由字母或下划线开头,后面跟着一些字母,数字,下划线和$符 Scala…
1 基础 1.1 Scala 解释器 REPL - 交互式解释器环境 R(read).E(evaluate).P(print).L(loop) 输入值,交互式解释器会读取输入内容并对它求值,再返回结果,并重复此过程. 1.2 声明 val(值) 和 var(变量) val: 定义值(常量), 即不可改变引用的指向(不可对其进行赋值操作), 指向的对象能否可变取决于变量自身类型 var: 定义变量, 可以改变引用的指向 声明值或者变量的同时, 必须初始化; 可以不指定类型, Scala可以利用初始…
Scala基础语法 Scala与JAVA的关系 Scala是基于Java虚拟机,也就是JVM的一门编程语言,所有Scala的代码都需要经过编译为字节码,然后交由Java虚拟机来运行. 所以Scala和JAVA是可以无缝互操作的,Scala可以任意调用Java的代码,这两种语言的关系事非常紧密的. Scala解释器的使用 REPL:Scala解释器也被称为REPL,会快速编译Scala代码为字节码,然后交给JVM来执行. 计算表达式:命令行内,键入Scala代码,解释器会直接返回结果给你(附带变量…
Map 创建Map // 创建一个不可变的Map scala> val ages = Map("Leo" -> 30, "Sparks" -> 25) ages: scala.collection.immutable.Map[String,Int] = Map(Leo -> 30, Sparks -> 25) // 创建一个可变的Map scala> val ages = scala.collection.mutable.Map(…
定义类 // 定义类,包含field以及method class HelloWorld { private var name = "Leo" def sayHello() { println("Hello" + name)} def getName = name } defined class HelloWorld // 创建类对象,并调用其方法 scala> val helloworld = new HelloWorld helloworld: HelloW…
extends 与Java一样,也是使用extends关键字,使用继承可以有效复用代码 class Person { private var name = "leo" def getName = name } class Student extends Person { private var score = "A" def getScore = score } defined class Person defined class Student scala>…