scala 随笔
创建map,并向map添加元素
val idMap = Map(
"group_id" -> "GID",
"sim_id" -> "SIM_ID",
"list_sim_id" -> "LIST_SIM_ID"
)
idMap += ("foo" -> "bar")
关键字Option, Some, None
https://blog.csdn.net/JasonDing1354/article/details/46788787
def option_some_test(){
val none_maps = None
val res = none_maps.getOrElse("jack", "XXXXXXXXXXXX")
println(res, res.getClass()) // res 是一个tuple,(jack, XXXXXXXXXXXX), 返回 ((jack,XXXXXXXXXXXX),class scala.Tuple2)
var maps = Map("jack"->"A", "tom"->"B", "rose"->"C")
println(maps.get("xxx")) // 返回None
println(maps.get("jack").get) // 返回"A"
println(maps.get("jack")) // 返回 Some(A)
println(maps.get("jack") == "A") // 返回 false
println(maps.get("jack") == Some("A")) // 返回 true
maps += ("bob" -> "bbbbbbbbbbbbbb") // 添加元素,返回 Map(jack -> A, tom -> B, rose -> C, bob -> bbbbbbbbbbbbbb)
print(maps)
val param:Option[Map[String, String]] = Some(maps)
println(param.get.get("xxx")) // 先把map拿出来,再get("xxx")就会返回None
println(param.get.get("jack").get) // 返回 "A"
println(param.get.get("jack")) // 返回 Some(A)
println(param.get("jack")) // 注意,直接返回"A"
println(param.get("xxx")) // 直接用Some(maps).get("xxx")会抛异常 java.util.NoSuchElementException: key not found: xxx
}
scala 中 Seq 和 List 的区别
在Java术语中,Scala的Seq将是Java的List,Scala的List将是Java的LinkedList。
查找字符串
str.indexOf(substr) >= 0;
list 添加元素
scala> val p1 = List("Kim")
p1: List[String] = List(Kim)
scala> val p2 = "Julia" :: p1
p2: List[String] = List(Julia, Kim)
scala> val p3 = "Judi" :: p2
p3: List[String] = List(Judi, Julia, Kim)
创建的工程无法添加scala class文件解决方法
具体问题的图,如下:
打开设置界面的路径如下: 主界面File——>Project Structure——>modules
如上图红圈所示,我们可以根据对项目的任意目录进行这五种目录类型标注,这个知识点非常非常重要,必须会。
- Sources 一般用于标注类似 src 这种可编译目录。有时候我们不单单项目的 src 目录要可编译,还有其他一些特别的目录也许我们也要作为可编译的目录,就需要对该目录进行此标注。只有 Sources 这种可编译目录才可以新建 Java 类和包,这一点需要牢记。
- Tests 一般用于标注可编译的单元测试目录。在规范的 maven 项目结构中,顶级目录是 src,maven 的 src 我们是不会设置为 Sources 的,而是在其子目录 main 目录下的 java 目录,我们会设置为 Sources。而单元测试的目录是 src - test - java,这里的 java 目录我们就会设置为 Tests,表示该目录是作为可编译的单元测试目录。一般这个和后面几个我们都是在 maven 项目下进行配置的,但是我这里还是会先说说。从这一点我们也可以看出 IntelliJ IDEA 对 maven 项目的支持是比彻底的。
- Resources 一般用于标注资源文件目录。在 maven 项目下,资源目录是单独划分出来的,其目录为:src - main -resources,这里的 resources 目录我们就会设置为 Resources,表示该目录是作为资源目录。资源目录下的文件是会被编译到输出目录下的。
- Test Resources 一般用于标注单元测试的资源文件目录。在 maven 项目下,单元测试的资源目录是单独划分出来的,其目录为:src - test -resources,这里的 resources 目录我们就会设置为 Test Resources,表示该目录是作为单元测试的资源目录。资源目录下的文件是会被编译到输出目录下的。
- Excluded 一般用于标注排除目录。被排除的目录不会被 IntelliJ IDEA 创建索引,相当于被 IntelliJ IDEA 废弃,该目录下的代码文件是不具备代码检查和智能提示等常规代码功能
idea 新建scala object,运行hello world 报“找不到或无法加载主类”
需要将Project structure -> modules -> 右边的Dependencies的sbt: org.scala-lang:scala-library:2.12.8:jar勾选上
添加scalatest sbt依赖
在看scala 课程的时候添加了一下依赖:
libraryDependencies += "org.scalatest" %% "scalatest" % "2.2.6" % "test"
但是报错“module not found: org.scalatest#scalatest_2.12;2.2.6”,这个模块已经找不到了,然后搜了scalatest sbt 找到了这个网站http://www.scalatest.org/user_guide/using_scalatest_with_sbt
然后添加了下面的依赖就好了:
libraryDependencies += "org.scalatest" %% "scalatest" % "3.0.5" % "test"
年月日转换成时间戳
import java.text.SimpleDateFormat
def tranTimeToLong(tm:String) :Long={
val fm = new SimpleDateFormat("yyyyMMdd")
val dt = fm.parse(tm)
val aa = fm.format(dt)
val tim: Long = dt.getTime()
tim
}
sleep
Thread.sleep() // wait for 1000 millisecond
循环tupole
val a = Map(("cn", "default") ->(("GID", "FEED", ""),("GID", "CHANNEL", "")))
val checktypes = a(("cn", "default"))
for ((idtype, imprtype, channelid) <- checktypes.productIterator) {
println(idtype, imprtype, channelid)
}
去掉字符串内的所有空白
input.replaceAll("\\s", "")
存文件
import java.io._
val pw = new PrintWriter(new File("hello.txt" ))
pw.write("Hello, world")
pw.close
字符串格式化
"This is %s string".format()
scala long 转换成 java long
import scala.collection.JavaConverters._ val l = List(1L,2L,3L,4L) l.map(java.lang.Long.valueOf).asJava
// or
l.map(_.asInstanceOf[AnyRef]).asJava
// or
l.map(Long.box).asJava
immutable Map 转换成 mutable Map 或 简单的Map
val m = collection.immutable.Map(->"one",->"Two")
val n = collection.mutable.Map(m.toSeq: _*) val n = Map(m.toSeq: _*)
class 的继承
https://blog.csdn.net/gongxifacai_believe/article/details/81948007
scala 集合操作
scala 随笔的更多相关文章
- Scala学习随笔——深入类和对象
函数化对象(又称方程化对象)指的是所定义的类或对象不包含任何可以修改的状态. 本篇随笔就是着重记录函数化对象.定义了一个有理数类定义的几个不同版本,以介绍 Scala 类定义的几个特性:类参数和构造函 ...
- Scala入门学习随笔
推荐学习视频:慕课网http://www.imooc.com/learn/613,讲师:辰风 ScalaAPI:http://www.scala-lang.org/api/current/#packa ...
- Scala学习随笔——控制语句
Scala只内置了为数不多的几种程序控制语句:if.while.for.try catch以及函数调用,这是因为从Scala诞生开始就包含了函数字面量,Scala内核没有定义过多的控制结构,而是可以通 ...
- Scala学习随笔——Scala起步
实验楼学习Scala语言的笔记,课程网址为https://www.shiyanlou.com/courses/490 一.Scala简介 Scala 是一门多范式的编程语言,类似于 Java .设计初 ...
- scala 代码随笔
def myfunc[T](iter: Iterator[T]) : Iterator[(T, T)] = { var res = List[(T, T)]() var pre = iter.next ...
- Scala Web 框架——Lift(一)准备工作
[Lift]Scala Web 框架——Lift(一)准备工作 Lift 官方网站:http://liftweb.net/ 下载 http://liftweb.net/download 下载.zip压 ...
- scala攻略--简介
在个人学习scala的过程中,产生了写一系列随笔的想法,这些随笔包括:翻译自官网.其他英文网站的文章以及自己的心得体会,本文章作为这个系列中的第一个. 由于本人能力所限,以及对scala还处于初级阶段 ...
- AI人工智能系列随笔
初探 AI人工智能系列随笔:syntaxnet 初探(1)
- 【置顶】CoreCLR系列随笔
CoreCLR配置系列 在Windows上编译和调试CoreCLR GC探索系列 C++随笔:.NET CoreCLR之GC探索(1) C++随笔:.NET CoreCLR之GC探索(2) C++随笔 ...
随机推荐
- python3-datetime.date详解(一)
datetime是python操作日期和时间的内置模块. python有两种日期.时间对象:“naive”和“aware”.前者由于忽略了实际情况更容易理解,操作.在任何时间空间内,它的值都取决于一个 ...
- ubuntu typora使用学习
typora使用方法 标题: 对于标题,直接用ctrl+对应数字就是第几级标题 文字格式: ctrl+B/I/U 进入加粗/倾斜/下划模式,不需要符号键入 居中的话 用 CENTER 列表引用: 可直 ...
- Temporary failure in name resolutionf的解决方法
Linux有时还蛮烦的这个不能用那个不能用,只能多折腾了. 今天又是,ping z.cn的时候直接报错 Temporary failure in name resolutionf 这个一般都知道是DN ...
- Visual Stdio2017 使用
1. 快捷键: https://www.cnblogs.com/happyzwt/p/7769129.html 2.
- anki_vector SDK源码解析(教程)
一:最近anki vector robot开放了Python SDK,我听到的第一时间就赶快上网查了查,先抛几个官网重要链接吧: Python编程API手册及环境搭建等: https://sdk-re ...
- Go - WaitGroup
package main import ( "fmt" "sync" ) //WaitGroup用于等待一组线程的结束.父线程调用Add方法来设定应等待的线程的 ...
- 引擎设计跟踪 ShadowMap 细节和分析
之前在工作总汇总了shadowmap的各种问题 [工作积累] shadow map问题汇总 最近有点时间再仔细研究了shadowmap的一些算法.主要修复了LiSPSM(上面链接里后面有更新),实现了 ...
- c# 纯代码调用 webservice
public static class RequestHelper { public class RequestResult { public RequestResult(bool requestRe ...
- 游戏编程模式 Game Programming Patterns (Robert Nystrom 著)
第1篇 概述 第1章 架构,性能和游戏 (已看) 第2篇 再探设计模式 第2章 命令模式 (已看) 第3章 享元模式 (已看) 第4章 观察者模式 (已看) 第5章 原型模式 (已看) 第6章 单例模 ...
- 面试题之python基础
基础语法 输入和输出 代码中要修改不可变的数据会出现什么问题,抛出什么异常? 代码不会征程运行,抛出TypeError异常 a = 1,b = 2,不用中间变量交换a和b的值? # 方法1 a = a ...