项目github地址:bitcarmanlee easy-algorithm-interview-and-practice
欢迎大家star,留言,一起学习进步

1.花括号与小括号的区别

以下代码的用法,非常常见:

val raw = List(("a",1),("b",2),("c",3))
val res = raw.map{ case (key,value) => value }.reduce(_ + _)
println(res)

注意这里如果将map方法的大括号换成小括号,代码会报错。
方法中的花括号有2种意思:
1)scala中函数的小括号,可以用花括号来表示,即foo{xx} 与 foo(xx)是一回事儿。
2)对于只有一个参数的方法,其小括号是可以省略的,map(lambda)可写为 map lambda,即这块{case (key,value) => value} 连同花括号整体是一个lambda(函数字面量)。

这里很明显花括弧啊的用法是第二种。

2.case偏函数

以下代码的用法,也非常常见:

val res2 = List(1,2,3).map{case 1 => "first"case 2 => "second"case _ => "other"}

{case x => y} 叫做偏函数(必须用大括号“{}”,使用“()”会报错)。 与完全函数想对应,普通的方法都是完全函数,即f(i:Int) = xxx 是将所有Int类型作为参数的,是对整个Int集的映射;而偏函数则是对部分数据的映射。

3.变长参数

有时候,函数需要一个可变长度的参数。在scala中是容易实现的:

object T1 {def sum(args:Int*) = {var result = 0for(arg <- args) result += argresult}def main(args: Array[String]): Unit = {val s = sum(1 to 5:_*)println(s)}
}

注意调用的时候使用:_*,将序列或者集合的内容全部当做参数来传递。

4.asInstanceOf[AnyRef]

val str = MessageFormat.format("The answer to {0} is {1}","everything",40.asInstanceOf[AnyRef])

这种写法很常见,对于任意的Object类型的参数都是可以这样。这种类似的参数在变长参数方法中使用最多。

scala中一些常见用法相关推荐

  1. c++中stringstream常见用法

    c++中stringstream常见用法 stringstream使用时,要包含头文件#include<sstream>,sstream这个库的又是在于存入类型的数据可以直接进行转换,不用 ...

  2. linux中find常见用法

    find命令用于查找指定目录下的文件,同时也可以调用其它命令执行相应的操作** 一.命令格式 find pathname -options [-print -exec -ok -] 二.linux中f ...

  3. scala中yeild举例用法

    Scala中的yield的主要作用是记住每次迭代中的有关值,并逐一存入到一个数组中. 用法如下: for {子句} yield {变量或表达式} 具体举例如下,该例子获取文本文件中包含指定关键字的相关 ...

  4. scala中case的用法

    scala中没有switch,但是有case,其case相当强大,有各种不同的匹配方式. 一.简单匹配,值匹配: 例 a: val bools = List(true, false) for (boo ...

  5. Linux中find常见用法示例

    find命令的参数: pathname: find命令所查找的目录路径.例如用.来表示当前目录,用/来表示系统根目录. -print: find命令将匹配的文件输出到标准输出. -exec: find ...

  6. matlab 中disp()常见用法

    disp()函数在matlab中使用help指令得出的结果如下 disp - 显示变量的值 此 MATLAB 函数 显示变量 X 的值,而不打印变量名称.显示变量的另一种方法是键入它的名称,这种方法会 ...

  7. __packed在结构体中的常见用法

    前言 协议的数据传输中,一般将数据封装成结构体,同时对结构体进行__packed来保证数据在传输中是连续的bit流.下面实验了__packed在结构体申明和定义中怎样的写法才是正确的. 结构体申明 t ...

  8. Scala中=gt;的用法

    1.匿名函数 (x: Int) => x + 1这一部分就是一个匿名函数,我这里使用了一个变量anonymousFun代替了这个匿名函数方便测试调用: =>左边是参数和参数类型,而=> ...

  9. 【find】Linux中find常见用法示例

    1.根据 某个名字在某个目录下进行查找 find /etc/ -name "*.conf" 在/etc/目录下 查找 后缀名为conf 的文件 转载于:https://www.cn ...

  10. mysql中正则表达式的用法_Mysql中正则表达式Regexp常见用法

    Mysql中Regexp常见用法 模糊匹配,包含特定字符串 # 查找content字段中包含"车友俱乐部"的记录 select * from club_content where ...

最新文章

  1. 【FFmpeg】ffmpeg命令详解(二)
  2. Win64 驱动内核编程-5.内核里操作文件
  3. Java:一个分数类的简单设计
  4. wxWidgets:wxTaskBarButton 示例
  5. poj 3590 The shuffle Problem(置换群+DP)
  6. 沙老师的作业系列——Crackme3
  7. 真实HDFS集群启动后master的jps没有DataNode
  8. 黑鲨会升级鸿蒙吗,买华为别乱选!这3款才是“最佳选择”,未来能升级鸿蒙系统...
  9. names文件和data文件_data.table让你的读取速度提升百倍
  10. 牛客网-数据结构笔试题目(八)-离子能力跃迁问题求解
  11. CSU 1202 剪刀石头布
  12. Tokyo Tyrant (ttserver)的master-slave复制协议分析
  13. 2021-2022年数学建模资料汇总——建模软件篇
  14. 小熊派BearPi-HM nano开发板 -- MobaXterm使用详情、VScode连接编译主机、小熊派源码获取及烧录
  15. dalao的tajan模板
  16. 前端-HTML基础入门
  17. Hazel游戏引擎(001-003)
  18. 42-表格表单和简单CSS引用
  19. NetSuite2.0 Restlet脚本 货品新增
  20. DAE系统的设计-豆瓣首席架构师洪强宁

热门文章

  1. [CareerCup] 12.6 Test an ATM 测试一个自动取款机
  2. PhpStorm中如何使用Xdebug工具,入门级操作方法
  3. 简单理解javascript中的原型对象,实现对之间共享属性和行为
  4. C言语次序查找算法及代码
  5. leetcode -- Maximum Subarray
  6. eclipse根据wsdl文件生成webservice客户端
  7. 机器学习中梯度下降算法的实际应用和技巧/李文哲
  8. Magento2.x 插件 Module(模块)开发实战
  9. Unity用GUI绘制Debug/print窗口/控制台-打包后测试
  10. Eclipse Class Decompiler——Java反编译插件