scala符号初体验
发布日期:2021-07-27 04:52:49
浏览次数:5
分类:技术文章
本文共 1451 字,大约阅读时间需要 4 分钟。
1. 怪符 <-
经常在for循环中的使用,被称生成器(generator)。
在执行过程中,集合filesHere中(Array[File])的元素将依次赋给file,file类型为File,打印时调用其toString方法将文件名称打印出来。
val filesHere = (new java.io.File(".")).listFiles//直接遍历数组元素for (file <- filesHere) | println(file)//间接遍历数组for (i <- 0 to filesHere.length - 1)println(filesHere(i))
还可以配合 until、if等加入一些限制条件。
for(i <- res39) println("Iteration"+i)for(i <- 1 to 5) println("Iteration"+i)// 这样写看着奇怪,是同楼上一样的for(i <- 1 .to(5)) println("Iteration"+i)//如果不需要5出现,则用untilscala> for(i <- 1 until 5) println("Iteration"+i)//加入if条件for (file <- filesHere if file.getName.endsWith(".scala"))println(file)
2. 怪符 ->
这个符号用于Map(映射)。Map是一种可迭代的键值对(key/value)结构。默认情况下 Scala 使用不可变 Map。 如果要使用可变集合,需要显式的引入 import scala.collection.mutable.Map 类
// 空哈希表,键为字符串,值为整型var A:Map[Char,Int] = Map()// 需要添加 key/value对,可以使用 + 号A += ('I' -> 1)A += ('J' -> 5)A += ('K' -> 10)A += ('L' -> 100)// Map 键值对演示val B = Map("red" -> "#FF0000", "azure" -> "#F0FFFF")//使用 ++ 运算符或 Map.++() 方法来连接两个 Map,Map 合并时会移除重复的 key// ++ 作为运算符var ab = A ++ B// ++ 作为方法ab = A.++(B)
3. 怪符 =>
类似于转化符号,=> 指明这个函数把左边的东西(任何整数x)转变成右边的东西(x + 1)。所以,这是一个把任何整数x映射为x + 1的函数。有点像匿名函数,匿名函数由参数列表,箭头连接符=>和函数体组成。
// 定义匿名函数val cube = (x: Int) => x * x *x
(x: Int)是匿名函数的参数,x * x *x 是函数体,箭头连接符=> 连接参数列表和函数体。
Scala中的=>符号也可以看做是创建函数实例的语法糖。例如:A => T,A,B => T表示一个函数的输入参数类型是“A”,“A,B”,返回值类型是T。
val f: Int => String = myInt => "The value of myInt is: " + myInt.toString()println(f(3))
4. 怪符 _
这个和python一样了,是一个程序员懒得命名的变量。有时候也当通配符用的。
转载地址:https://blog.csdn.net/qq_45292079/article/details/104424664 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
网站不错 人气很旺了 加油
[***.192.178.218]2024年10月02日 19时39分36秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
ES相关度评分
2019-05-27
我们一起做一个可以商用的springboot脚手架
2019-05-27
idea在搭建ssm框架时mybatis整合问题 无法找到mapper
2019-05-27
java设计基本原则----单一职责原则
2019-05-27
HashMap的实现
2019-05-27
互斥锁 synchronized分析
2019-05-27
java等待-通知机制 synchronized和waity()的使用实践
2019-05-27
win10 Docke安装mysql8.0
2019-05-27
docker 启动已经停止的容器
2019-05-27
order by 排序原理及性能优化
2019-05-27
Lock重入锁
2019-05-27
docker安装 rabbitMq
2019-05-27
git 常用命令 入门
2019-05-27
linux安装docker
2019-05-27
关闭selinx nginx无法使用代理
2019-05-27
shell 脚本部署项目
2019-05-27
spring cloud zuul网关上传大文件
2019-05-27
springboot+mybatis日志显示SQL
2019-05-27
工作流中文乱码问题解决
2019-05-27
maven打包本地依赖包
2019-05-27