首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

(数据科学学习手札45)Scala基础知识

2.2 Scala变量声明   和java类似,Scala中的变量需要在创建时进行声明,有var和val两种声明方式,其中val类型变量定义后不可以重新赋值,而var类型变量声明之后可以自由赋新值,下面在...逻辑非   Scala中的赋值运算符如下: 运算符 描述 = 将右侧的值赋给左对象 += 先做加法再赋值 -= 先做减法再赋值 *= 先做乘法再赋值 /= 先做除法再赋值 %= 先做求模取余再赋值...[Int] = ArrayBuffer(1, 2, 3, 4) 数组相关方法:   1.索引   对于数组,我们使用 数组名(n) 的方式来索引其从第0位开始第n+1个元素: scala> var array...方式声明,元组中的元素都不可改变,且元组对内部元素的索引比较特别,是通过....> List.concat(list2,list1) res2: List[Int] = List(4, 5, 1, 2, 3)   4.列表的一些特殊索引方法   和数组类似,列表中也有一些针对头尾若干元素的特殊的索引方式和特殊的判断列表属性的方法

2.6K20

Scala语法笔记

-1 高级for 循环  可以使用变量<- 表达式 的形式提供多个生成器,用分号将其隔开 如果for循环的循环体以yield开始,则循环会构造出一个结合,每次迭代生成集合中的一值: 每个生成器都自带一个守卫...,以if开头的Boolean表达式 可以任意多的定义,引入可以在循环中使用变量 定义函数:Scala一般不需要声明返回值类型,会自己推断,但使用递归的时候 必须指定返回类型: 默认参数和带名参数(什么鬼...toString返回的值就无意义了 使用List 使用:: 把一个新元素组合到已有List的最前端,然后返回结果List 使用元组Tuple: 与列表一样,元组也是不可变的,但与列表不同,元组可以包含不同类型的元素...一旦你已经实例化了一个元组,你可以用点号,下划线和一个基于1的元素索引访问它. 使用Set和Map 创建,初始化和使用可变集合 Map是Scala里另一种有用的集合类。...直觉上,Scala的闭包捕获了变量本身,而不是变量指向的值 重复参数 Scala允许你指明函数的最后一个参数可以是重复的。这可以允许客户向函数传入可变长度参数列表。

1.2K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Scala 高阶(七):集合内容汇总(上篇)

    可变数组 三、列表(List) 不可变List 可变ListBuffer 四、Set集合 不可变Set 可变Set 五、Map集合 不可变Map 可变Map 六、元组 ---- Scala中的集合与Java...不可变集合在原集合上不能进行插入删除数据,只能返回新的集合。 二、数组(Array) 不可变数组 如何定义?...(36) // 向前添加 arr.prepend(11, 90, 56) // 在指定位置添加 arr.insert(索引位置,可变参数) arr.insert(1,...合并连个列表:list1 :: list2将list1整个列表合并到list2。 list1 ::: list2 或者list1 ++ list2 将list1的各个元素合并到list2。...Set集合 默认情况下,Scala 使用的是不可变集合,如果你想使用可变集合,需要引用scala.collection.mutable.Set 包 不可变Set 如何创建?

    98120

    scala 容器详细解释

    scala.collection.mutable 包的集合类则有一些操作可以修改集合。 scala.collection 包中的集合,既可以是可变的,也可以是不可变的。...字符串(String)操作有mkString,addString和stringPrefix,可以将一个容器通过可选的方式转换为字符串。 视图(View)操作包含两个view方法的重载体。...seq seq 的apply操作是用于索引的访问使用()作用 索引和长度的操作 apply、isDefinedAt、length、indices,及lengthCompare。...例如,我们可以像下述代码那样在HashMap中混入SynchronizedMap。 具体不可变集实体类 List 列表List是一种有限的不可变序列式。...提供了常数时间的访问列表头元素和列表尾的操作,并且提供了常数时间的构造新链表的操作,该操作将一个新的元素插入到列表的头部。其他许多操作则和列表的长度成线性关系。

    1.3K10

    01.Scala:开发环境搭建、变量、判断、循环、函数、集合

    , hive, sqoop) 11.4 遍历数组 可以使用以下两种方式来遍历数组: 使用for表达式直接遍历数组中的元素 使用索引遍历数组中的元素 示例一 定义一个数组,包含以下元素1,2,3,4,5...List具备以下性质: 可以保存重复的值 有先后顺序 在scala中,也有两种列表,一种是不可变列表、另一种是可变列表 13.1 不可变列表 定义 不可变列表就是列表的元素、长度都是不可变的。...[Int] = ListBuffer(1, 2, 3, 4) 13.3 可变列表操作 获取元素(使用括号访问(索引值)) 添加元素(+=) 追加一个列表(++=) 更改元素(使用括号获取元素,然后进行赋值...Set具备以下性质: 元素不重复 不保证插入顺序 scala中的集也分为两种,一种是不可变集,另一种是可变集。...在scala中,Map也分为不可变Map和可变Map。

    4.1K20

    Scala——多范式, 可伸缩, 类似Java的编程语言

    个人学习code /** * 1.Scala中定义常量使用val ,常量不可变,定义变量使用var,变量可变。...7 def apply(n: Int): A 选择通过其在列表中索引的元素 8 def contains(elem: Any): Boolean 测试该列表中是否包含一个给定值作为元素。...20 def head: A 选择列表的第一个元素 21 def indexOf(elem: A, from: Int): Int 经过或在某些起始索引查找列表中的一些值第一次出现的索引。...* map:k-v, 初始化方式可以为k->v(将k映射到v上), (k,v) * 因此在遍历语句 for循环中, elem将mao集合中的所有元素映射到elem上,...隐式值与隐式参数 隐式值是指在定义参数时前面加上implicit。隐式参数是指在定义方法时,方法中的部分参数是由implicit修饰【必须使用柯里化的方式,将隐式参数写在后面的括号中】。

    3K20

    大数据--scala学习第一章:基础第二章:控制结构和函数第三章:数组第四章:字典和元组第五章:类第六章:对象第七章:包和引入第八章:继承第九章文件和正则表达式第十章特质:接口第十一章操作符第十二章函

    8、跳出循环:1、函数中可以使用return跳出函数 2、循环条件使用Boolean变量 3、使用Breaks对象中的break方法: import scala.util.control.Breaks....5、在Scala中程序必须从object对象的main方法开始。 第七章:包和引入 1、包和Java中的包类似,只是Scala中定义包的方式更多,可以使用{},可以文件顶部标记。...7、Scala中的特质最后被翻译成jvm中的接口 第十一章操作符 1、标示符:Scala中可以使用Unicode字符组成标示符,还可以使用所有的AscII字符,但是建议使用类似于java标示符的方式。...可变序列与java中的大体类似 4、列表:在Scala中列表要么是空的要么是一个head元素加上一个tail元素而tail元素又是一个链表,我的思路是:嵌套链表,以head开始tail嵌套。...5、可变列表与不可变列表类似,只是可以通过elem和next对头部和尾部进行修改。

    4.4K20

    机器学习:如何快速从Python栈过渡到Scala栈

    ; Null表示空值; val定义的变量为常量,其值不能改变,而var定义的则是变量,值可以随便改,这里主要关注类型为集合时,可变与不可变如何理解,这点放到后面集合时再细说; IF-ELSE val x...until m两种方式,区别是使用until时循环不包含m,算是很贴心的小改动,可读性比java和python都强一些; for循环支持生成器、集合、range等类型中遍历,类似java的普通循环和增强...的for循环也支持类似python列表推导式的方法:for (1 <- 1 to 10) yield i*10; 函数 准确的说,在Scala中函数和方法不完全等价,所谓的方法是类的一部分,而函数则是一个对象...; 将一个函数变量作为入参传入到另一个函数中; 这里对于函数的理解可以想象数学中的函数,数学中的函数嵌套、组合的过程就是Scala中的函数互相作为参数传递的过程; 基本集合类型 一般高级语言中支持的集合类型都是类似的...同样的ListBuffer是List的可变版本; 字典 字典在Scala中叫做映射; val map1 = Map("k1"->10, 2->1.5, 3.3->"abc") println(map1)

    1.8K31

    带你快速掌握Scala操作———(3)

    可以使用以下两种方式来遍历数组:  使用for表达式直接遍历数组中的元素  使用索引遍历数组中的元素 参考代码 scala> val a = Array(1,2,3,4,5) a: Array[Int...List具备以下性质:  可以保存重复的值  有先后顺序 在scala中,也有两种列表,一种是不可变列表、另一种是可变列表 定义 不可变列表就是列表的元素、长度都是不可变的。...[Int] = ListBuffer(1, 2, 3, 4) 可变列表操作  获取元素(使用括号访问(索引值))  添加元素(+=)  追加一个列表(++=)  更改元素(使用括号获取元素,然后进行赋值...不保证插入顺序 scala中的集也分为两种,一种是不可变集,另一种是可变集。...在scala中,Map也分为不可变Map和可变Map。

    2K30

    分布式机器学习:如何快速从Python栈过渡到Scala栈

    ; Null表示空值; val定义的变量为常量,其值不能改变,而var定义的则是变量,值可以随便改,这里主要关注类型为集合时,可变与不可变如何理解,这点放到后面集合时再细说; IF-ELSE val x...,区别是使用until时循环不包含m,算是很贴心的小改动,可读性比java和python都强一些; for循环支持生成器、集合、range等类型中遍历,类似java的普通循环和增强for循环的结合,for...python列表推导式的方法:for (1 <- 1 to 10) yield i*10; 函数 准确的说,在Scala中函数和方法不完全等价,所谓的方法是类的一部分,而函数则是一个对象,可以赋值给一个变量...; 将一个函数变量作为入参传入到另一个函数中; 这里对于函数的理解可以想象数学中的函数,数学中的函数嵌套、组合的过程就是Scala中的函数互相作为参数传递的过程; 基本集合类型 一般高级语言中支持的集合类型都是类似的...同样的ListBuffer是List的可变版本; 字典 字典在Scala中叫做映射; val map1 = Map("k1"->10, 2->1.5, 3.3->"abc") println(map1)

    1.2K20

    Scala专题系列(四) : Scala集合

    本节主要包括Scala中集合库的分类,集合的特质,集合的可变,不可变,并发以及并行性集合的使用 一:集合的特质 图: Scala集合继承层次中的关键特质 层级1 :Iterable指的是哪些能生成涌来访问集合中所有元素的...Set是一组没有先后次序的值,在SortedSet中,元素以某种排过序的顺序被访问 Map是一组(键,值)对偶,SortedMap按照键的顺序访问其中的value apply方法 每个Scala集合或类都有一个带有...加入没有apply方法,需要使用new关键字来得到F对象 二:集合的可变与不可变性 Scala中同时支持可变和不可变的集合,不可变的集合从不改变,因此是线程安全的 Scala编程中优先采用不可变集合,在...Scala.collection 包中的伴生对象产出不可变的集合,比如:scala.collection.Map("year" -> 2017)就是一个不可变的映射 在不可变集中,如果要添加元素,那么它将会生成一个新的集合...,如果我们将已有元素加入是没有效果的 和列表List不同,集不保留元素插入的顺序,所以Set是无序的,Set是以哈希集实现的其元素根据hashCode方法的值进行组织 Seq序列 Seq是元素有插入的先后顺序

    65130

    Scala入门必刷的100道练习题(附答案)

    (60,80,90) 6、a集合拼接列表List(100,300,200) 7、定义一个可变set集合b,初始元素为:5,6,7,8 8、b集合中使用+=添加元素9 9、b集合中删除元素5 10、b集合使用...、在list1列表开头添加元素t 43、在列表开头添加指定列表List("m","n")的元素 44、在列表list1后添加元素1 45、将列表的所有元素添加到 StringBuilder 46、将列表的所有元素添加到...StringBuilder并指定分隔符为"," 47、获取列表索引为0的元素 48、检测列表中是否包含指定的元素a 49、向list1列表中追加数据"a" 50、去除list1列表的重复元素,并返回新列表...while循环并打印输出 79、定义一个迭代器iter2,数据为10,20,20,30,34,50,60 80、打印出iter2中的最大值 81、打印出iter2中的最小值 82、打印出iter2的长度...b数组后面追加一个数组Array(70) 97.使用for循环遍历b数组的内容并输出 98.使用for循环遍历b数组的索引下标,并打印元素 99.在scala中数组常用方法有哪些?

    3K10

    Scala | 教程 | 学习手册 --- 常用集合

    collections提供一些数据结构来收集给定类型的一个或多个值。 scala的集合还有单独的可变和不可变的集合的类型层次体系。...foreach()取一个函数,对列表中每一项调用这个函数 map()取一个函数,将一个列表元素转换为另一个值或类型 reduce()取一个函数,将两个列表列表元素结合为一个元素 scala> val colors...scala中,键和值都可以参数化。 创建map时,指定键值为元组(),可以使用关系操作符 -> 来指定键和值元组。...sortBy方法指定一个函数时,它会返回一值,用来对列表中的元素排序。 对于性能方面,::, drop, take在列表前面完成,因此不存在性能损失。...collect使用一个偏函数,只对一部分元素应用 flatMap使用一个给定函数转换各个元素,将结果列表扁平化到这个列表中 map使用给定函数转换各个元素 scala> List(0, 1,

    57820

    3小时Scala入门

    八,列表List 列表和数组相似,都是有序的结构,但列表中的元素是不可变的。 并且列表的存储结构为递推的链表结构,和数组不同。 1,创建列表 ? 2,列表常用操作 ? ? ?...九,集合 集合是一种不可变的类型,并且是无顺序的,适合查找某个元素是否在集合中。 ? ? 十,映射Map 映射和Python中的字典很像,但是Scala中的Map是一种不可变类型。...十八,匿名函数 Scala中的函数是一等公民,可以像变量一样定义和使用。 和变量一样,函数具有类型和值。...函数的值是函数的参数和返回值的取值映射关系, 如 x => x+1 x,y => x+y 。 使用这种方式声明的函数叫做匿名函数。 此外,当函数表达式中引用了非参数的变量时,这种函数叫做闭包。...为了逼近这个目标,scala设计的默认数据结构绝大部分是不可变的。 并且在一个良好风格的scala程序中,只需要使用val不可变变量而无需使用var可变变量。

    1.6K30

    3小时Scala入门

    八,列表List 列表和数组相似,都是有序的结构,但列表中的元素是不可变的。 并且列表的存储结构为递推的链表结构,和数组不同。 1,创建列表 ? 2,列表常用操作 ? ? ?...九,集合 集合是一种不可变的类型,并且是无顺序的,适合查找某个元素是否在集合中。 ? ? 十,映射Map 映射和Python中的字典很像,但是Scala中的Map是一种不可变类型。...十八,匿名函数 Scala中的函数是一等公民,可以像变量一样定义和使用。 和变量一样,函数具有类型和值。...函数的值是函数的参数和返回值的取值映射关系, 如 x => x+1 x,y => x+y 。 使用这种方式声明的函数叫做匿名函数。 此外,当函数表达式中引用了非参数的变量时,这种函数叫做闭包。...为了逼近这个目标,scala设计的默认数据结构绝大部分是不可变的。 并且在一个良好风格的scala程序中,只需要使用val不可变变量而无需使用var可变变量。

    3.5K20

    3小时Scala入门

    八,列表List 列表和数组相似,都是有序的结构,但列表中的元素是不可变的。 并且列表的存储结构为递推的链表结构,和数组不同。 1,创建列表 ? 2,列表常用操作 ? ? ?...九,集合 集合是一种不可变的类型,并且是无顺序的,适合查找某个元素是否在集合中。 ? ? 十,映射Map 映射和Python中的字典很像,但是Scala中的Map是一种不可变类型。...十八,匿名函数 Scala中的函数是一等公民,可以像变量一样定义和使用。 和变量一样,函数具有类型和值。...函数的值是函数的参数和返回值的取值映射关系, 如 x => x+1 x,y => x+y 。 使用这种方式声明的函数叫做匿名函数。 此外,当函数表达式中引用了非参数的变量时,这种函数叫做闭包。...为了逼近这个目标,scala设计的默认数据结构绝大部分是不可变的。 并且在一个良好风格的scala程序中,只需要使用val不可变变量而无需使用var可变变量。

    1.6K30
    领券