1)Map[String,Int]和Map[Int,String]是两种不同的类型,其他的类推,List[Int],List[String]其他类推
2)在进行类型匹配时,编译器会预先检测是否有可能的匹配,如果没有则报错

object MatchForDemo {def main(args: Array[String]): Unit = {val map = Map("A"->1,"b"->0,"C"->3)for((k,v) <- map) {println(k + " ->" + v) //出来三个key-value ("A"->1,"b"->0,"C"->3)}// 说明:只遍历出value = 0 的key -value,其他过滤掉println("---------------(k,0)<- map---------------")for ((k,0)<- map) {println(k + " -->" + 0)}// 说明,这个就是上面代码的另外写法,只是下面的用法更加灵活和强大for ((k,v) <- map if v >= 1) {println(k + "----> " + v)}}
}object MatchArr {def main(args: Array[String]): Unit = {val arrs = Array(Array(0),Array(1,0),Array(0,1,0),Array(1,1,0),Array(1,1,0,1))for (arr <- arrs ) {val result = arr match {case Array(0) => "0"case Array(x,y) => x + "="  + ycase Array(0,_*) => "以0开头和数组"case _ => "什么集合都不是"}// result = 0// result = 1 =0// result = 以0开头和数组// result = "什么集合都不是"// result = "什么集合都不是"println("result =" + result)}}
}object MatchArr {def main(args: Array[String]): Unit = {val arrs2 = Array(Array(0),Array(1,0),Array(0,1,0),Array(1,1,0),Array(1,1,0,1))for (arr <- arrs2 ) {val result = arr match {case Array(0) => "0"case Array(x,y) => Array(y,x)case Array(0,_*) => "以0开头和数组"case _ => "什么集合都不是"}// result = 0// result = 1 =0// result = 以0开头和数组// result = "什么集合都不是"// result = "什么集合都不是"println("result =" + result)}// 给你一个数组集合,如果该数组是 Array(10,20),请使用模式匹配,返回Array(20,10)}
}object CaseClassDemo01 {def main(args: Array[String]): Unit = {println("hello~~~")}
}abstract class Amount
case class Dollar(value:Double) extends Amount // 样例类
case calss Currency(value:Double,unit:String) extends Amount // 样例类
case object NoAmount extends Amount //样例类

scala类型匹配注意事项相关推荐

  1. 没有与制定类型匹配的重载函数 cv::Vec<_Tp 实例

    opencv 引用是,报错 没有与制定类型匹配的重载函数 cv::Vec<_Tp 实例 171个错误, 解决方法: #include <opencv2/opencv.hpp> 把下面 ...

  2. Scala 类型的类型(一)

    目录 1. Scala 类型的不同类型 2. 写作进度 3. Type Ascription 4. 通用类型系统 - Any, AnyRef, AnyVal 5. 底类型 - Nothing 与 Nu ...

  3. scala类型推断及库方法设计原则和==与java有何差别

    scala类型推断 方法msortSwapped(abcd)(_>_) 通常,一旦有需要推断多台方法类型参数的任务时,类型推断器就只参考第一个参数列表中所有参数类型,但不会参考之后其他参数.因为 ...

  4. [译] Scala 类型的类型(一)

    本文由 Yison 发表在 ScalaCool 团队博客. 原文 ktoso.github.io/scala-types- 目录 1. Scala 类型的不同类型 2. 写作进度 3. Type As ...

  5. Java--枚举类型(枚举类型介绍 定义枚举类型 枚举类型的使用 枚举类型的注意事项 遍历枚举项)

    01: Java–枚举类型(枚举类型介绍 & 定义枚举类型 & 枚举类型的使用 & 枚举类型的注意事项 & 遍历枚举项) 02: Java–枚举类型(枚举类型实现接口 ...

  6. GPS天线走线类型及注意事项

    GPS天线走线类型及注意事项 GPS天线有有源天线和无源天线之分: GPS天线有微带线.共面波导等走线方式. 以上为个人笔记,因图片再次截屏会不清楚,所以全部截屏让大家参考下.

  7. Scala模式匹配:类型匹配

  8. Java 8功能接口–实现Scala类型的随机思维

    在" 使用Scala进行功能编程"课程的一项作业中,引入了一种称为Terrain的类型-Terrain表示一个区域,该区域的某些部分可以访问,而某些部分则不能访问. 因此,以一种非 ...

  9. java 泛型 父子_使用通配符和泛型:完成父子类关系的List对象的类型匹配

    泛型和通配符 使用泛型和通配符都可以让一个方法所表示的算法逻辑适应多种类型. Java中具备继承关系的类A.B(A extends B)它们的集合List和List之间是没有继承关系的, 可以使用泛型 ...

最新文章

  1. 华为热设计工程师待遇_华为给985毕业生开2万元的工资,是侮辱价?还是不自量力?...
  2. 增长放缓,工业机器人产业经历“倒春寒”?
  3. mysql + Fluently NHibernate + WebAPI + Autofac
  4. ORACLE TEXT LEXER PREFERENCE(一)
  5. tensorflow打印模型图_从Tensorflow模型文件中解析并显示网络结构图(pb模型篇)...
  6. 微服务基本环境的搭建
  7. 基于深度学习的音乐推荐系统简述
  8. 外包的水有多深?华为18k的外包测试岗能去吗?
  9. 从云计算到容器到容器云
  10. Qt 设置弹出控制台终端
  11. Eclipse报错DataIntegrityViolationException异常解决办法
  12. 微信中将时间戳转换为聊天时间(二)
  13. 去重数组中相同的字符串
  14. 欧姆龙e5dc温控器_E5□C(E5AC/E5EC/E5CC/E5DC)温控器如何进行AT自整定?
  15. 【Java】设计Java程序,假设有50瓶饮料,喝完3个空瓶可以换一瓶饮料,依次类推,请问总共喝了多少瓶饮料?
  16. python小数乘法计算_小学数学所有的知识点都在这里,期末复习必备!
  17. 【100%通过率】华为OD机试真题 C++ 实现【无向图染色】【2022.11 Q4新题】
  18. 金蝶EAS BOS上如何打补丁
  19. 在线观看视频解决音频不同步
  20. 论文投稿指南——中文核心期刊推荐(数学)

热门文章

  1. 一个工具类实现自定义Tablayout的下划线宽度
  2. 8Manage微信CRM:打破传统企业营销套路
  3. 在虚拟机里安装centos 6.4和centos 5.8里配置vim 7.4安装过程
  4. laravel按月/时间区间查询数据
  5. 「管理数学基础」3.4 凸分析:最优性的充要条件、无约束极小化问题、一般非线性规划问题
  6. ERROR 1045 (28000): Access denied for user 'backup'@'mysql' (using password: YES)
  7. JNI读取assets资源文件
  8. linux脚本调用db2存储过程,LINUX定时执行含有DB2存储过程的SHELL脚本
  9. TurboMail邮件服务器腾云驾务云化邮件办公
  10. IIS优化-解决IIS访问速度慢问题