
Scala
文章平均质量分 74
艾伦蓝
Just do it
展开
-
Scala 基本概念学习
[color=blue][size=x-large][b]Type Inference类型推断[/b][/size][/color][color=red][b]当你声明的任何变量时,你不需要指定类型。[/b][/color]让我们来看看下面的例子。打开REPL下输入val number1:Int =5结果是number1: Int = 5val number2=5...原创 2017-04-13 14:40:38 · 166 阅读 · 0 评论 -
Scala yield案例 (for 循环和 yield 的例子)
fer you can't see, and for each iteration of your for loop, another item is added to that buffer. When your for loop finishes running, it will return this collection of all the yielded values. The type of the collection that is returned is the same type th原创 2017-04-13 18:42:18 · 233 阅读 · 0 评论 -
Scala mkString方法(把一个集合转化为一个字符串)
原创 2017-04-13 19:34:31 · 874 阅读 · 0 评论 -
Scala 下划线(_)的多种应用场景学习
参数序列处理!例如val s = sum(1 to 5:_*)就是将1 to 5当作参数序列处理。3、指代一个集合中的每个元素。例如我们要在一个Array a中筛出偶数,并乘以2,可以用以下办法:a.filter(_%2==0).map(2*_)。又如要对缓冲数组ArrayBuffer b排序,可以这样:val bSorted = b.sorted(_)4、在元组中,可以用方法_1, _2, _3访问组员。如a._2。其中句点可以用空格替代。5、使用模式匹配可以用来获取元组的组员,例原创 2017-04-13 20:00:36 · 112 阅读 · 0 评论 -
Scala 符号 => 的用法(匿名函数(x:Int)=>x+1)
h(println _)}getMap((x:Int)=>x*x,-5,5)[/code][code="scala"]def double(x: Int): Int = x*2[/code][color=blue][b]函数double的类型就是 (x: Int) => Int 或者 Int => Int[/b][/color]备注: [b]当函数只有一个参数的时候,函数类型里面括起来函数参数的括号是可以省略的。[/b]原创 2017-04-17 10:58:24 · 378 阅读 · 0 评论 -
Scala 函数之map(返回集合)、reduce、flatMap、zip和foreach(无返回值)学习
ch { case 3 => List('a','b') case _ => List(x*2) }) println(res) } def map1(): Unit = { val li = List(1,2,3) val res = li.map(x => x match { case 3 => List('a','b') case _ => x*2 }原创 2017-04-17 15:04:10 · 835 阅读 · 0 评论 -
Scala 元组Tuple学习
3.14, "元组", true)[/code]这是一个四元组,由4个元素组成。[color=red][b]Scala目前的版本支持最多22元组。一元组类是存在的,但没有对应的内建语法,所以单纯的用括号把一个值围起来没什么卵用。[/b][/color]零元组也是存在的,就是Unit了。[color=blue][b]元组有什么用?请设想,有一个函数,返回一个类Weather,然后有一天,老板让你多返回些信息,比如有没有雾霾,能不能外出,而你没有修改Weather的权限,怎么原创 2017-04-17 16:12:52 · 99 阅读 · 0 评论 -
Scala Map(映射)学习
表(Hash tables)。[/b][/color]Map 有两种类型,可变与不可变,区别在于可变对象可以修改它,而不可变对象不可以。[color=blue][b]默认情况下 Scala 使用不可变 Map。如果你需要使用可变集合,你需要显式的引入 import scala.collection.mutable.Map 类[/b][/color]在 Scala 中 你可以同时使用可变与不可变 Map,[size=medium][color=red][b]不可变的直接使用 Map,可变的使用 m原创 2017-04-18 09:20:22 · 102 阅读 · 0 评论 -
Scala apply方法学习(类和对象都存在apply方法)
与某个类共享同一个名称时,他被称作是这个类的伴生对象:companion object。[/b][/size][/color][size=large][b]你必须在同一个源文件里定义类和它的伴生对象。类被称为是这个单例对象的伴生类:companion class。[/b][/size][size=medium][color=red][b]类和它的伴生对象可以互相访问其私有成员。[/b][/color][/size][color=red][b]定义单例对象不是定义类型(在Scala的抽象层次上原创 2017-04-19 10:18:41 · 89 阅读 · 0 评论 -
Scala filter方法过滤集合元素(获取集合中的元素)
]Solution[/b][/size]“选择一个集合方法来解决问题”,大量的方法可以被用来过滤输入集合的元素然后生成新的集合。[color=blue][b]这一节中展示了filter方法。那么如何正确使用集合的filter方法呢,首先你需要给filter方法一个判断条件或者返回true/false的函数,这个判断条件(函数)的输入类型要与集合元素类型一致,返回值是布尔型的。[/b][/color]filter方法会对集合的每一个元素调用判断条件,当条件为true的时候则元素进入新的集合否则会被过滤原创 2017-04-19 14:44:00 · 1322 阅读 · 0 评论 -
Scala 各种符号的含义(->,:::,::,<-,=>)
][color=red][b]其中a,b保持不变,a和b连接产生一个新表List(1,2,3,4),而不是在a上面做add操作。[/b][/color][/size]Scala中的List不同于Java的List,Java声明final List javaList,表示java List一旦初始化,那么不能再为它赋值,但是它其中的元素可以变化, [color=red][size=x-large][b]::运算符[/b][/size][/color][b]::(两个冒号)表示普通元素与List原创 2017-04-20 09:50:32 · 905 阅读 · 0 评论 -
Scala 闭包理解
数里面局部变量的另外一个函数。如下面这段匿名的函数:[code="scala"]val multiplier = (i:Int) => i * 10 [/code] 函数体内有一个变量 i,它作为函数的一个参数。如下面的另一段代码:[code="scala"]val multiplier = (i:Int) => i * factor[/code]在 multiplier 中有两个变量:i 和 factor。[b]其中的原创 2017-04-20 13:57:22 · 209 阅读 · 0 评论 -
Scala 作业题练习纪录
t,low:Int,high:Int),该函数输出一个集合,对应给定区间内给定函数的输入和输出。比如,values(x=>x*x,-5,5)应该产出一个对偶的集合(-5,25),(-4,16),(-3,9),…,(5,25)[code="scala"]def getMap(f:(Int)=>Int,m:Int,n:Int)={ val list = m to n list.map(x=>(x,f(x))).foreach(println _)}原创 2017-04-20 14:39:35 · 181 阅读 · 0 评论 -
Scala 样本类(case class)和模式匹配(match)学习
原创 2017-04-20 18:20:22 · 200 阅读 · 0 评论 -
Scala Partial Functions(偏函数)学习
原创 2017-04-24 10:54:42 · 127 阅读 · 0 评论 -
Scala 基本概念学习
原创 2017-04-13 14:40:38 · 100 阅读 · 0 评论 -
Scala 在Intellij中搭建Scala环境(jdk8,scala2.11.4)
1.打开Intellij然后点击File->Plugins找到scala安装scala插件2.安装scala环境(配置环境变量版本用2.11.4)3.安装jdk84.创建scala项目点击File->New->Project中的scala 然后点击SBT项目 选择你的jdk和scala版本[img]http://dl2.iteye.com/upload/atta...原创 2017-06-02 16:33:05 · 1241 阅读 · 0 评论 -
Scala yield案例 (for 循环和 yield 的例子)
下面是摘自 《Programming in Scala》关于 yield 的解释:[code="txt"]For each iteration of your for loop, yield generates a value which will be remembered. It's like the for loop has a buffer you can't see, and f...原创 2017-04-13 18:42:18 · 356 阅读 · 0 评论 -
Scala mkString方法(把一个集合转化为一个字符串)
[b]Problem[/b]如果你想要把集合元素转化为字符串,可能还会添加分隔符,前缀,后缀。[b]Solution[/b]使用mkString方法来打印一个集合内容,下面给一个简单的例子:[code="scala"]scala> val a = Array("apple", "banana", "cherry")a: Array[String] = Array(a...原创 2017-04-13 19:34:31 · 2764 阅读 · 0 评论 -
Scala 下划线(_)的多种应用场景学习
[color=red][b]1、作为“通配符”,类似Java中的*。如import scala.math._[/b][/color][color=blue][b]2、:_*作为一个整体,[/b][/color]告诉编译器你希望将某个参数当作参数序列处理!例如val s = sum(1 to 5:_*)就是将1 to 5当作参数序列处理。3、指代一个集合中的每个元素。例如我们要在一个...原创 2017-04-13 20:00:36 · 227 阅读 · 0 评论 -
Scala 符号 => 的用法(匿名函数(x:Int)=>x+1)
[size=large][color=red][b]1. 表示函数的类型(Function Type)[/b][/color][/size][code="scala"]def getMap(f:(Int)=>Int,m:Int,n:Int)={ val list = m to n list.map(x=>(x,f(x))).foreach(println _)...原创 2017-04-17 10:58:24 · 896 阅读 · 0 评论 -
Scala 函数之map(返回集合)、reduce、flatMap、zip和foreach(无返回值)学习
[size=large][color=red][b]map和flatMap的区别[/b][/color][/size][code="scala"]object collection_t1 { def flatMap1(): Unit = { val li = List(1,2,3) val res = li.flatMap(x => x match { ...原创 2017-04-17 15:04:10 · 1260 阅读 · 0 评论 -
Scala 元组Tuple学习
[b]元组是Scala提供的一种特殊的数据结构,或者说是一块语法糖,它允许多个不同类型的元素组合在一起被使用,[/b]如下所示:[code="scala"]val tup = (1, 3.14, "元组", true)[/code]这是一个四元组,由4个元素组成。[color=red][b]Scala目前的版本支持最多22元组。一元组类是存在的,但没有对应的内建语法,所以单纯的用括...原创 2017-04-17 16:12:52 · 275 阅读 · 0 评论 -
Scala Map(映射)学习
[color=red][b]Map(映射)是一种可迭代的键值对(key/value)结构。[/b][/color]所有的值都可以通过键来获取。Map 中的键都是唯一的。[color=red][b]Map 也叫哈希表(Hash tables)。[/b][/color]Map 有两种类型,可变与不可变,区别在于可变对象可以修改它,而不可变对象不可以。[color=blue][b]默...原创 2017-04-18 09:20:22 · 207 阅读 · 0 评论 -
Scala apply方法学习(类和对象都存在apply方法)
[color=red][b]Scala比Java更面向对象的一个方面是Scala没有静态成员。[/b][/color]替代品是,Scala有单例对象:singleton object。[color=blue][size=large][b]当单例对象与某个类共享同一个名称时,他被称作是这个类的伴生对象:companion object。[/b][/size][/color][size=lar...原创 2017-04-19 10:18:41 · 395 阅读 · 0 评论 -
Scala filter方法过滤集合元素(获取集合中的元素)
[size=medium][b]Problem[/b][/size][color=red][b]你想要筛选出集合中的一些元素形成一个新的集合,这些元素都是满足你的筛选条件的。[/b][/color][size=medium][b]Solution[/b][/size]“选择一个集合方法来解决问题”,大量的方法可以被用来过滤输入集合的元素然后生成新的集合。[color=blu...原创 2017-04-19 14:44:00 · 7374 阅读 · 0 评论 -
Scala 各种符号的含义(->,:::,::,<-,=>)
[size=x-large][b]:::运算符[/b][/size]:::(三个冒号)表示List的连接操作,比如:[code="scala"]val a = List(1, 2) val b = List(3, 4) val c = a ::: b [/code][size=medium][color=red][b]其中a,b保持不变,a和b连接产生一个新表...原创 2017-04-20 09:50:32 · 4040 阅读 · 0 评论 -
Scala 闭包理解
[size=large][color=red][b]闭包是一个函数,返回值依赖于声明在函数外部的一个或多个变量。[/b][/color][/size]闭包通常来讲可以简单的认为是可以访问一个函数里面局部变量的另外一个函数。如下面这段匿名的函数:[code="scala"]val multiplier = (i:Int) => i * 10 [/code] 函数体内有一个变量...原创 2017-04-20 13:57:22 · 308 阅读 · 0 评论 -
Scala 作业题练习纪录
[size=large][color=red][b]1.用reduceLeft获取集合中最大元素[/b][/color][/size][code="scala"]println((1 to 3).reduceLeft((x,y)=>Math.max(x,y)))[/code]2 编写函数values(fun:(Int)=>Int,low:Int,high:Int),该函数输出一个集...原创 2017-04-20 14:39:35 · 375 阅读 · 0 评论 -
Scala 样本类(case class)和模式匹配(match)学习
[size=medium][color=red][b]样本类(case clas)和模式匹配(pattern matching),在编写规范的、无封装数据结构时会用到的构件。[/b][/color][/size]对于树型递归数据尤其有用。[size=large][color=red][b]一、简单例子:[/b][/color][/size] [code="scala"]abstr...原创 2017-04-20 18:20:22 · 593 阅读 · 0 评论 -
Scala Partial Functions(偏函数)学习
[size=medium][color=red][b]如果你想定义一个函数,而让它只接受和处理其参数定义域范围内的子集,对于这个参数范围外的参数则抛出异常,这样的函数就是偏函数(顾名思异就是这个函数只处理传入来的部分参数)。[/b][/color][/size][size=large][b]偏函数是个特质其的类型为PartialFunction[A,B],其中接收一个类型为A的参数,返回一...原创 2017-04-24 10:54:42 · 177 阅读 · 0 评论 -
Scala 在Intellij中搭建Scala环境(jdk8,scala2.11.4)
原创 2017-06-02 16:33:05 · 154 阅读 · 0 评论