模型出错了,请稍后重试~
Scala的列表结构可以理解为一个样例类,因为它不需要使用new方法,例如: scala> val a = List("a","b","c") a: List[String] = List(a, b,...并且列表元素必须要是同样的类型,如果列表里混用其它类型,那么它们的类型默认为Any类。所有类型的父类。...: List[Int] = List(2, 3) scala> a.isEmpty res2: Boolean = false Scala的列表可以利用模式匹配实现和Python一样的解包 scala>...Int = 2 rest: List[Int] = List(3, 4) 下面聊下Scala列表的初阶方法和高阶方法,两者的区别仅在于初阶方法不接受函数作为参数传入,高阶可以。...对应head和tail方法,还用init和last方法 init方法返回除末尾元素外的列表,last返回最后一个元素,显然对于链表结构,它们的运算量都是O(n)级别的 scala> a.init res3
key, this.leading, // 标题左侧的 Widget 组件 required this.title, // 展示的列表标题 Widget this.subtitle..., // 子标题 this.onExpansionChanged, // 列表 展开/折叠 回调函数 this.children = const [],...// 列表展示时显示的 Widget 组件集合 this.trailing, // 标题右侧的 Widget 组件 this.initiallyExpanded = false...appBar: AppBar( /// 标题组件 title: Text("ListView 示例"), ), /// 列表组件...body: ListView( children: _buildList(), ), ), ); } /// 创建列表
简介 在日常的开发中,有可能会遇到需要一些可以展开的列表,比如QQ的好友列表,电商的购物车折叠显示。...Android也给我们提供ExpandableListView类,完美实现这样类似的需求, 极大的方便了我们开发。结合之前的项目我们做一个简单的讲解。 首先懒看一下最终的实现效果: ?...Controller中。...isExpanded) { //设置套餐折叠时显示套餐商品的图片 initGoodsImage(collocationPackageBean, parentViewHolder...= (TextView) view.findViewById(R.id.tv_collocation_price); } } /** * 初始化并设置套餐折叠时的所有商品图片
简介 在日常的开发中,有可能会遇到需要一些可以展开的列表,比如QQ的好友列表,电商的购物车折叠显示。...Android也给我们提供ExpandableListView类,完美实现这样类似的需求, 极大的方便了我们开发。结合之前的项目我们做一个简单的讲解。...Controller中。...isExpanded) { //设置套餐折叠时显示套餐商品的图片 initGoodsImage(collocationPackageBean, parentViewHolder...= (TextView) view.findViewById(R.id.tv_collocation_price); } } /** * 初始化并设置套餐折叠时的所有商品图片
一、认识ExpandableListView ExpandableListView 是 ListView 的子类,它在普通ListView的基础上进行了扩展,它把应用中的列表项分为几组,每组里又可包含多个列表项...android:indicatorEnd:组列表项指示器的结束约束位置。 android:indicatorLeft:组列表项指示器的左边约束位置。...android:indicatorRight:组列表项指示器的右边约束位置。 android:indicatorStart:组列表项指示器的开始约束位置。...getGroupCount():该方法返回包含的组列表项的数量。 getGroupView():该方法返回的View对象将作为组列表项。...getChildrenCount():该方法返回特定组所包含的子列表项的数量。 getChildView():该方法返回的View对象将作为特定组、特定位置的子列表项。
Scala的革新主要来源于它是如何构造并放在一起的。在这部分里,我们罗列了对Scala设计的主要影响。列表并不全——因为围绕着编程语言的设计有太多的好点子,没办法全都列举在这里。...他的通用嵌套的思想(几乎所有的Scala里的构造都能被嵌套进其他构造)也出现在Algol,Simula,和最近的Beta与gbeta中。它的方法调用和字段选择的统一访问原则来自于Eiffel。...它函数式编程的处理方式在骨子里与以SML,OCaml和F#为代表的ML家族语言很接近。许多Scala标准库里面的高阶函数同样也出现在ML或Haskell中。...举例来说,它的抽象类型提供了对泛型类型来说更面向对象的替代,它的特质允许灵活的控件组合,还有他的拆分器提供了独立于表达的方式去做模式匹配。这些革新已在近年编程语言会议中阐述在论文里了。.../134865.htm) 学习Scala中的Case类 Groovy创始人:Java面临终结 Scala将取而代之
本篇作为scala快速入门系列的第十三篇博客,为大家带来的是关于列表的相关内容。 ? 列表 List是scala中最重要的、也是最常用的数据结构。...List具备以下性质: 可以保存重复的值 有先后顺序 在scala中,也有两种列表,一种是不可变列表、另一种是可变列表。...要使用可变列表,先要导入 import scala.collection.mutable.ListBuffer [!...NOTE] 可变集合都在mutable包中 不可变集合都在 immutable包中(默认导入) 初始化列表 语法 使用ListBuffer元素类型创建空的可变列表,语法结构: ?...扁平化(压平) 扁平化表示将列表中的列表中的所有元素放到一个列表中。 ?
一、前述 Scala中的函数还是比较重要的,所以本文章把Scala中可能用到的函数列举如下,并做详细说明。 二、具体函数 1、Scala函数的定义 ?...,要指定传入参数的类型 方法可以写返回值的类型也可以不写,会自动推断,有时候不能省略,必须写,比如在递归函数中或者函数的返回值是函数类型的时候。 ...scala中函数有返回值时,可以写return,也可以不写return,会把函数中最后一行当做结果返回。当写return时,必须要写函数的返回值。...如果返回值可以一行搞定,可以将{}省略不写 传递给方法的参数可以在方法中使用,并且scala规定方法的传过来的参数为val的,不是var的。...** * 包含默认参数值的函数 * 注意: * 1.默认值的函数中,如果传入的参数个数与函数定义相同,则传入的数值会覆盖默认值 * 2.如果不想覆盖默认值,传入的参数个数小于定义的函数的参数
Java中异常处理有两种方式 try...catch和finally概述 finally重要面试题 三、Scala中的异常机制 ---- Scala中的异常机制语法处理上和 Java 类似,但是又不尽相同...中的异常机制 将会发生异常的代码封装在 try 块中。...Scala 的异常的工作机制和 Java 一样,但是 Scala 没有“checked(编译期)”异常,即 Scala没有编译异常这个概念,异常都是在运行的时候捕获处理。...因此,在 catch 子句中,越具体的异常越要靠前,越普遍的异常越靠后,如果把越普遍的异常写在前,把具体的异常写在后,在 Scala 中也不会报错,但这样是非常不好的编程风格。...它向调用者函数提供了此方法可能引发此异常的信息。它有助于调用函数处理并将该代码包含在 try-catch块中,以避免程序异常终止。在 Scala 中,可以使用 throws 注解来声明异常。
常量 类型 数组 列表 元组 对象及样例类 四、声明变量中的模式匹配 五、for表达式模式匹配 六、偏函数模式匹配 ---- 本次主要分享Scala中关于模式匹配的内容,Scala中的模式匹配类似于Java...中的switch语法,但是Scala在基于Java的思想上补充了特有的功能。...二、模式守卫 需要进行匹配某个范围的数据内容的时候,可以在模式匹配中进行模式守卫的操作,类似于for推倒式中的循环守卫。...:运算符匹配first :: second :: rest,将一个列表拆成三份,第一个第二个元素和剩余元素构成的列表。...,unapply 方法将 student 对象的 name 和 age 属性提取出来,与 Student("alice", 15)) 中的属性值进行匹配 case 中对象的 unapply 方法(提取器
Scala中的immutable Collection 集合 Traversable 遍历 Iterable 迭代 Set无序集合 Sequence序列 Map映射 Set...,表明一个转换过程,参数中的匿名函数参数x是List中得每个元素 //使用map实现全部字母大写 scala> c.map(x => x.toUpperCase) res23: List[String]...filter和map来实现对List中过滤后元素的具体操作 //下面是将奇数全部加10 scala> a.filter( _ % 2 ==1).map( _ + 10) res26: List[Int...scala> s.tail.head res50: Int = 2 Scala中的tuple:元组 //元组的概念,和Python中的元组类似,可以放不用类型的变量 scala> (1,2) res51...> _3operate(a) res56: (Int, Int, Int) = (4,10,30) Scala中的Map //使用类似元组的箭头来定义一个键值对 scala> val p = Map(1
可折叠列表ExpandableListView 嵌套列表ExpandableListView是又一种常见的控件,常见的业务场景包括:好友分组与好友列表、订单列表与订单内的商品列表、邮件夹分组与邮件列表等等...ExpandableListView常用方法 Android自带的ExpandableListView可以直接用于嵌套列表,点击一个组,展开该组下的子列表;再点击这个组,收起该组下的子列表。...FoldingLayout ExpandableListView对于一般场景的折叠式列表已经够用了,可是它的UI风格略显呆板,如果我们想来个显示特效,比如加上折叠展开的动画,那最好还是自己写个折叠式列表控件...FoldingLayout便是这样一个开源的折叠式布局控件,它实现了像折纸那样折叠展开和折叠收起的动画。...下面是FoldingLayout的常用方法说明: setFoldFactor : 设置折叠的因子。0表示收起,1表示展开。 setOrientation : 设置折叠的方向。
艺术地说,Scala中的Partial Function就是一个“残缺”的函数,就像一个严重偏科的学生,只对某些科目感兴趣,而对没有兴趣的内容弃若蔽履。...在Scala中,所有偏函数的类型皆被定义为PartialFunction[-A, +B]类型,PartialFunction[-A, +B]又派生自Function1。...) -T1, @specialized(scala.Unit, scala.Boolean, scala.Int, scala.Float, scala.Long, scala.Double, scala.AnyRef...例如编写一个函数,要求将字符串中的数字替换为对应的英文单词,则可以实现为: val p1:PartialFunction[String, String] = { case s if s.contains...is even" case x if x % 2 == 1 => x + " is odd" } 在Twitter的Effetive Scala中,给出了一个使用map的编码风格建议: //avoid
的函数 4.Scala中的集合类型 -----------------------------------------------------------------------------------...-------------------------- Scala中的集合类型 Scala提供了一套很好的集合实现,提供了一些集合类型的抽象。...定长列表:scala.collection.immutable.List,一旦声明之后长度不可变。 ...变长列表:scala.collection.mutable.ListBuffer,变长列表。 ...如果你需要使用可变集合,你需要显式的引入 import scala.collection.mutable.Map 类 在Scala中你可以同时使用可变与不可变 Map,不可变的直接使用 Map,
在Scala中,函数引入传入的参数是再正常不过的事情了,比如(x: Int) => x > 0中,唯一在函数体x > 0中用到的变量是x,即这个函数的唯一参数。...在Scala中,答案是闭包能够看到这个改变,参考下面的例子: scala> more = 9999 more: Int = 9999 scala> addMore(10) res1: Int = 10009...很符合直觉的是,Scala的闭包捕获的是变量本身,而不是变量引用的值。...: Int = -11 这个例子通过遍历的方式来对List中的数字求和。...Scala编译器会重新组织和安排,让被捕获的参数在堆上继续存活。这样的安排都是由编译器自动完成的,使用者并不需要关心。
主要行文目录如下: 方法的常用用法 标准定义 参数默认值、带名传参和不定长参数 参数列表缺省 return缺省 返回值类型缺省 等号缺省 大括号缺省 函数的常用用法 标准定义 偏应用函数和偏函数...02 函数的常用用法 如果说Scala中的方法更像是其他语言中函数,那么Scala中的函数则更像是为实现函数式编程而特有的设计。...在多数介绍Scala中函数的技术文章中,一般会提到这么一句: 函数是Scala中的一等公民。...对于Scala中的一个方法定义,但参数或返回值是一个函数类型时,那么就称之为高阶函数(或者更严谨的说,是一个高阶方法),这也是Scala中函数式编程的直接体现。...概括而言,方法和函数的主要联系与区别包括: 方法定义的关键字为def,函数定义的标志性符号则为=> 函数必须接受参数列表(参数可以为空,但小括号不可省略);而方法中则可以省略参数列表甚至小括号,此时仅用于完成部分固定功能
scala中的case语法与java中的switch语法类似,但比switch更强大: 例子一正则匹配: val Pattern="(s.*)".r val v1="spark";
我们先来看看Java中的变量与常量。在Java中,常量是指在程序运行期间值不能被改变的量,使用final关键字修饰。...Java中的变量在程序运行中可以动态的改变其值,如 int a = 1; int b = 2; a = a + b; 与Java类似的,Scala中对应有 val、var对应常量和变量的定义。...var 变量 Scala 中可以使用 var 来修饰变量。...package com.byron4j.scala /** * * 展示Scala 变量的方式 * val: 相当于java中的final常量,一旦给val变量赋值,则val变量不可以再做修改...中大量使用了 val 常量的定义, 在 Scala 中应尽量减少 var 的使用。
Map结构是一种非常常见的结构,在各种程序语言都有对应的api,由于Spark的底层语言是Scala,所以有必要来了解下Scala中的Map使用方法。...: Int = { x.compareTo(y) } } println(a.toSeq.sorted) (2)可变Map例子 特点: api丰富与Java中Map...基本类似 如果是var修饰,引用可变,支持读写 如果是val修饰,引用不可变,支持读写 def map3(): Unit ={ //不可变Map+var关键词修饰例子 var a:scala.collection.mutable.Map...[String,Int]=scala.collection.mutable.Map("k1"->1,"k2"->2)//初始化构造函数 a += ("k3"->3)//添加元素 a += ("k4..." -> 23, "CO" -> 25)//追加集合 a --= List("AL", "AZ")//删除集合 a.retain((k,v)=> k=="k1")//只保留等于k1元素,其他的删除
# 列表 列表 是一种用于保存一系列有序项目的集合,也就是说,你可以利用列表保存一串项目的序 列。...想象起来也不难,你可以想象你有一张购物清单,上面列出了需要购买的商品,除开在 购物清单上你可能为每件物品都单独列一行,在 Python 中你需要在它们之间多加上一个逗 号。...# 代码 # 列表 # This is my shopping list ''' 在这里要注意在调用 print 函数时我们使用 end 参数,这样就能通过一个空格来结束输出 工作,而不是通常的换行
领取专属 10元无门槛券
手把手带您无忧上云