〇,编程环境 1,安装Java 2,配置Java环境变量 3,安装Scala 4,配置Scala环境变量 参考文末阅读原文链接。 一,算术运算 ? ? 3,引入某些对象 (import scala.io. (2)保存成HelloWorld.scala的脚本。 然后在cmd中输入 scala HelloWorld.scala 执行。 (3)使用scalac进行编译然后执行。 3,unapply使用演示 ? ? 二十六,Scala语言的设计哲学 1,一切皆对象 从整数,字符串,函数,类到各种数据结构,Scala中一切皆为对象,Any是它们的超类。 3,简洁而富有表现力 同样的功能,Scala的代码量可能不到Java的五分之一。 并且Scala的许多特性设计非常有表现力。
〇,编程环境 1,安装Java 2,配置Java环境变量 3,安装Scala 4,配置Scala环境变量 参考文末阅读原文链接。 一,算术运算 ? ? 3,引入某些对象 (import scala.io. (2)保存成HelloWorld.scala的脚本。 然后在cmd中输入 scala HelloWorld.scala 执行。 (3)使用scalac进行编译然后执行。 3,unapply使用演示 ? ? 二十六,Scala语言的设计哲学 1,一切皆对象 从整数,字符串,函数,类到各种数据结构,Scala中一切皆为对象,Any是它们的超类。 3,简洁而富有表现力 同样的功能,Scala的代码量可能不到Java的五分之一。 并且Scala的许多特性设计非常有表现力。
〇,编程环境 1,安装Java 2,配置Java环境变量 3,安装Scala 4,配置Scala环境变量 参考文末阅读原文链接。 一,算术运算 ? ? 3,引入某些对象 (import scala.io. (2)保存成HelloWorld.scala的脚本。 然后在cmd中输入 scala HelloWorld.scala 执行。 (3)使用scalac进行编译然后执行。 3,unapply使用演示 ? ? 二十六,Scala语言的设计哲学 1,一切皆对象 从整数,字符串,函数,类到各种数据结构,Scala中一切皆为对象,Any是它们的超类。 3,简洁而富有表现力 同样的功能,Scala的代码量可能不到Java的五分之一。 并且Scala的许多特性设计非常有表现力。
/Int/Long/Float/Double Boolean 类型转换基本操作 scala> var d = 1.1 d: Double = 1.1 scala> var e:Float = 1.1 e:Float = 1.1f e: Float = 1.1 scala> val f = 10 f: Int = 10 scala> val g = 10.asInstanceOf[Double] g: Double = 10.0 scala> val h = 10.isInstanceOf[Int] h: Boolean = true 3.Lazy在Scala中的使用 定义的时候不会执行,只有在第一次使用的时候才会执行 : String = <lazy> scala> info res10: String = "hello " scala> 4.Scala 常用IDE IDEA: Eclipse: NetBeans image.png 第一次创建项目需要下载依赖包可能会比较慢 去Plugin里下载Scala的Plugin,下载完成后重启 ?
Scala入门 Scala简介 ps:在最新的薪资调查中,Scala程序员的工资是平均最高的Scala工资。 Scala的官网地址为:http://www.Scala-lang.org/ Scala有几项关键特性表明了它的面向对象的本质。 Java平台的Scala于2003年底/2004年初发布。.NET平台的Scala发布于2004年6月。该语言第二个版本,v2.0,发布于2006年3月。 it is called def nb2 = y private def test(a: Int): Int = { ... } // private method val nb3 例如,上面的代码可以改为: scala> val msg3= |"Hello world 3rd time" msg3:String= Hello world 3rd
在scala专栏已经写过两篇博文,为大家详细地介绍了如何在windows上安装scala并与IDEA进行集成。 相信大家可能已经把环境都配置好了,但可能对scala的概念还是一个未知数。所以小菌打算出一个scala快速入门系列,供大家学习使用。 作为快速入门系列第一篇博客,本篇博客先为大家带来scala基本介绍。 ? 简介 scala是运行在JVM上的多范式编程语言,同时支持面向对象和面向函数编程。 早期,scala刚出现的时候,并没有怎么引起重视,随着Spark和 Kafka这样基于scala的大数据框架的兴起,scala逐步进入大数据开发者的眼帘。scala的主要优势是它的表达性。 作为scala快速入门系列的第一篇博文,我也不想整太多的花里胡哨~有更多的疑惑可以自行解决,也可以私信问我。作为scala快速入门系列,力求快狠准,攻克大家的疑点,难点。
Scala 与 Java Scala 与 Java 关系密切,体现在下面几点: Scala 运行在 JVM 上, Scala 可以与企业现有 Java 应用同时运行 Scala 可以直接使用 Java 类库, 开发人员可以利用现有框架以及代码 Scala 与 Java 都是镜台语言 Scala 语法和Java 语法相近, 开发人员可以迅速掌握 Scala Scala 既支持面向对象范型也支持面向对象范型 ,开发人员可以逐步运用函数式编程思想 Scala 诞生 了解了 Scala 的特性之后,我们追本溯源, 了解下 Scala 的诞生起源。 Wattzon已经公开宣称,其整个平台都已经是基于Scala基础设施编写的。 瑞银集团把Scala用于一般产品中。 Coursera把Scala作为服务器语言使用。 Kafka 核心也是Scala 实现的。 函数式语言 面向对象的特性得以使应用平滑的从 Java 迁移到 Scala,但是Scala惹眼的是其函数式编程的特性。
甚至可以更简洁: def products = orders.flatMap(_.products) 这样我们就可以看出Scala可以写更少的代码来实现同样的功能。 提取码:psvm 选择MSI包 注意安装路径不能有空格否则报错 此时不应有 \scala\bin.. 测试是否可用 scala -version IDEA安装插件 安装后重启IDEA 创建项目 项目上右键 添加Scala SDK 添加我们的测试类 代码如下 package cn.psvmc } } 测试 object Test { def main(args: Array[String]): Unit = { var u = new User() u.age = 3 遍历 object Test { def main(args: Array[String]): Unit = { // 遍历List val list = List(1, 2, 3)
Scala入门 Scala简介 ps:在最新的薪资调查中,Scala程序员的工资是平均最高的Scala工资。 Scala的官网地址为:http://www.Scala-lang.org/ Scala有几项关键特性表明了它的面向对象的本质。 Java平台的Scala于2003年底/2004年初发布。.NET平台的Scala发布于2004年6月。该语言第二个版本,v2.0,发布于2006年3月。 it is called def nb2 = y private def test(a: Int): Int = { ... } // private method val nb3 例如,上面的代码可以改为: scala> val msg3= |"Hello world 3rd time" msg3:String= Hello world 3rd
由于做大数据开发,使用最多的语言就是scala和python,java。 刚开始由于spark是scala开发的,就去学习了scala,然后看spark的源码。 后面就是基于spark-core写原生scala的应用。总体来时, scala使用是真的丝滑和顺手。尤其函数式编程。我开发flink也是使用scala。目前很少使用Java了。 我下面就系统介绍一下,scala的内容学习, 我自己也做一个系统的学习补充吧。 这篇主要从scala入门介绍。 Scala 是一门多范式 (multi-paradigm) 的编程语言,Scala支持面向对象和函数式编程 Scala源代码(.scala)会被编译成Java字节码(.class),然后运行于JVM之上 ,就可以快速的掌握Scala这门语言 scala像python一样,一切皆对象。
本篇博客,作为scala快速入门系列的第二篇博客,为大家带来的是关于scala解释器的初步使用! ? 后续我们会使用scala解释器来学习scala基本语法,scala解释器像Linux命令一样,执行一条代码,马上就可以让我们看到执行结果,用来测试比较方便。 我们将要学习: 启动scala解释器 在scala解释器中执行scala代码 退出scala解释器 ---- 启动scala解释器 要启动scala解释器,只需要以下几步: 按住 windows键 + r 输入 scala 即可 ? 执行scala代码 在scala的命令提示窗输入 println("hello , world"),回车执行。 ?
val b = Array(1,2,3) b: Array[Int] = Array(1, 2, 3) scala> b.sum res2: Int = 6 scala> b.max res3: Int = 3 scala> b.min res4: Int = 1 scala> b.mkString(",") res5: String = 1,2,3 scala> b.mkString(" ::拼接一个新的list l2: List[Int] = List(1) scala> val l3 = 2 :: l2 l3: List[Int] = List(2, 1) scala> val l4 = 1 :: 2 :: 3 :: Nil l4: List[Int] = List(1, 2, 3) scala> val l5 = scala.collection.mutable.ListBuffer Set scala> val s = Set(1,2,3,3,4,5) s: scala.collection.immutable.Set[Int] = Set(5, 1, 2, 3, 4) scala
1.初识Scala 1.1 Scala概述 image.png Scala 是整合了面向对象和函数式边恒的高级编程语言。 下载Scala-2.11.8 https://www.scala-lang.org/download/2.11.8.html image.png 3. 验证 ➜ scala-2.11.8 scala Welcome to Scala 2.11.8 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_171). scala> 1.3 Scala使用入门 scala> 1+3 res1: Int = 4 // 自动识别类型 scala> res1 * 3 //自动给返回结果赋值给变量 res2: Int = 12 scala> res0 * res1 res3: Int = 16 scala> println("hello word") hello word scala> 1.4 Scala和Java版本Hello
Scala 中提供了基于是否匹配某个条件来执行相应动作的模式匹配,这很类似其他语言的switch-case语句。 我们以一个划分学生期末成绩等级的例子来解释 Scala 模式匹配的用法: package com.byron4j.scala.basic /** * Scala 模式匹配的用法 */ object
Scala面向对象 1.面向对象概述 封装:属性方法封装到类中 继承:父类和子类直接的关系 多态:***** 父类引用指向子类对象 精髓所在,开发框架的基石 2.类的定义和使用 package com.gwf.scala.course04 ..." } def watchFootball(teamName: String)={ println(name+"is watching match of "+teamName) } } } scala > var d:Double = _ d: Double = 0.0 scala> val i:Int = _ <console>:11: error: unbound placeholder parameter val i:Int = _ ^ scala> var i:Int = _ i: Int = 0 scala> var s:String = _ s: String = null scala> 3 Object ApplyTest apply...") } println("Object ApplyTest leave...") } 9.case class package com.gwf.scala.course04
Actor Scala 的 Actor 类似于 Java 中的多线程编程。但是不同的是,Scala 的 Actor提供的模型与多线程有所不同。 Scala 的 Actor 尽可能地避免锁和共享状态,从而避免多线程并发时出现资源争用的情况,进而提升多线程编程的性能。 Akka 也实现了类似 Scala Actor的模型,其核心概念同样也是 Actor。 "Li" 收发 case class 类型的消息 Scala 的 Actor 模型与 Java 的多线程模型之间,很大的一个区别就是,Scala Actor 天然支持线程之间的精准通信;即一个 actor 在 Scala 中,通常建议使用样例类,即 case class 来作为消息进行发送。然后在 actor 接收消息之后,可以使用 Scala 强大的模式匹配功能来进行不同消息的处理。
val 常量 Scala中,使用 val 关键字修饰常量,常量一旦赋值,则后续不允许再次进行赋值操作。 var 变量 Scala 中可以使用 var 来修饰变量。 package com.byron4j.scala /** * * 展示Scala 变量的方式 * val: 相当于java中的final常量,一旦给val变量赋值,则val变量不可以再做修改 val a = Array(1, 2) for( key <- a ){ println("遍历输出数组值:" + key); } Scala 是一门函数式编程语言,在Scala 中大量使用了 val 常量的定义, 在 Scala 中应尽量减少 var 的使用。
第二步安装 Scala: 下载 Scala 登录 http://www.scala-lang.org/download/ 选择下载最新的 Scala 版本 解压、设置 环境变量(没有经验的参考http 使用 scala -version 命令查看当前 Scala 的版本; 使用 scala 命令则直接进入 Scala 解释执行器中: C:\Users\Administrator>scala Welcome scala> 我们可以输入简单的一条 Scala 语句输出”Hello,Scala!” scala> println("Hello,Scala!") Hello,Scala! scala> 至此,Windows 安装Scala 环境完成。 Linux中Scala运行环境的安装配置 Linux 下安装Scala环境步骤和Windows下类似,也是需要先安装JDK、再安装Scala。 可以自行查看网上相关资料安装。
一. scala的前世今生 ? 联邦理工学院的马丁·奥德斯基(Martin Odersky)于2001年开始设计Scala。 一般来说,学Scala的人,都会Java,而Scala是基于Java的,因此我们需要将Scala和Java以及JVM 之间的关系搞清楚,否则学习Scala你会蒙圈。 1)Scala是一门多范式的编程语言,Scala支持面向对象和函数式编程。 3)Scala单作为一门语言来看,非常的简洁高效。 早期,scala刚出现的时候,并没有怎么引起重视,随着Spark和 Kafka这样基于scala的大数据框架的兴起,scala逐步进入大数据开发者的眼帘。scala的主要优势是它的表达性。
Scala 函数高级操作 1. 匿名函数 // 直接定义 scala> (x:Int) => x+1 res19: Int => Int = <function1> // 赋值给变量 scala> val m1 = (x:Int) => x+1 m1: Int => Int = <function1> scala> m1(10) res20: Int = 11 // 赋值给函数 scala> def add = (x:Int, y:Int)=>{x+y} add: (Int, Int) => Int scala> add(2,3) res21: Int = 5 3. currying 函数 def sum(a:Int,b:Int