首页
学习
活动
专区
工具
TVP
发布

Play & Scala 技术分享

专栏作者
66
文章
91217
阅读量
31
订阅数
挑逗 Java 程序员的那些 Scala 绝技
有个问题一直困扰着 Scala 社区,为什么一些 Java 开发者将 Scala 捧到了天上,认为它是来自上帝之吻的完美语言;而另外一些 Java 开发者却对它望而却步,认为它过于复杂而难以理解。同样是 Java 开发者,为何会出现两种截然不同的态度,我想这其中一定有误会。Scala 是一粒金子,但是被一些表面上看起来非常复杂的概念或语法包裹的太严实,以至于人们很难在短时间内搞清楚它的价值。与此同时,Java 也在不断地摸索前进,但是由于 Java 背负了沉重的历史包袱,所以每向前一步都显得异常艰难。本文主要面向 Java 开发人员,希望从解决 Java 中实际存在的问题出发,梳理最容易吸引 Java 开发者的一些 Scala 特性。希望可以帮助大家快速找到那些真正可以打动你的点。
joymufeng
2018-10-23
2K0
原 荐 关于 Scala 隐式转换必读的一篇
Martin 在 《Programming in Scala Third Edition》 中讲解隐式转换时提到,隐式参数或隐式转换可能来自于当前作用域,或是源类型、目标类型的伴生对象。其实真相并不是那么简单,Martin 没有更深入讲解更多的来源。这些额外的隐式转换来源对库开发者来说非常赞,可以为开发者带来更简洁的开发体验。例如我们在 Play 里经常像下面这样构建一个 JsObject : import java.time.Instant import play.api.libs.json.Json
joymufeng
2018-06-13
1.1K0
Scala 谜题 - 有趣的类型转换
在 Scala 中,List[String] 和 List[Int] 之间并没有继承关系,但是下面的代码竟然可以通过编译并且顺利运行: object Test extends App { val strList: List[String] = List("a", "b", "c") val strToIntList: List[Int] = strList.asInstanceOf[List[Int]] println(strToIntList) } 输出: //输出: List(a, b, c
joymufeng
2018-05-17
7500
Play-Scala开发技巧 - 带索引遍历Form(arrayProperty)
    Play提供了Form、Field等表单类型,帮助开发者节省了很多表单处理方面的负担,但是有些功能目前不是很灵活,正如本文即将讨论的@helper.repeat函数,该函数目前无法让开发者直接访问元素索引,本文介绍两种方法,可以临时解决这个问题。     假设我们的form定义如下: case class User(_id: String, name: String, emails: List[String]) val userForm = Form[User](     mapping(     
joymufeng
2018-05-17
5840
PlayFramework 2.1 技巧-性能调优实战
1. 为什么要调优? 1.1 实验:一个简单的示例     Play Framework2.1的基本设计思想是能够快速处理大量耗时较少的请求,比较耗时的请求采用异步方式完成。为了很好地说明这一点,让我们来看一个例子,编写控制器代码如下: public static AtomicInteger count = new AtomicInteger(0); public static Result test(Long id) { if(id!=0){ try { System.out.pr
joymufeng
2018-05-17
1K0
理解Scala的Symbol类型
    相信很多人和我一样,在刚接触Scala时,会觉得Symbol类型很奇怪,既然Scala中字符串都是不可变的,那么Symbol类型到底有什么作用呢?     简单来说,相比较于String类型,Symbol类型有两个比较明显的特点:节省内存和快速比较。在进入正题之前,让我们先来了解一下Java中String的intern()方法。 一、String的intern方法介绍     Oracle的开发文档上讲解的很详细:String类内部维护一个字符串池(strings pool),当调用S
joymufeng
2018-05-17
1.5K0
你真的了解Java中的负数?
下面这行代码的输出是什么? public static void main(String[] args) { System.out.println(0xffffffff); } 下面两行代码的输出相同吗? public static void main(String[] args) { byte b=-1; System.out.println((int)(char)b); System.out.println((int)(char)(b & 0xff)); } 请尝试在Eclipse中运行
joymufeng
2018-05-17
2.8K0
Java基础 - 常用路径操作总结
1. 获取类路径 返回类路径内容,一般为:lib1.jar;lib2.jar。 System.getProperty("java.class.path");  在命令行运行Java程序时,上面的代码将会返回"-cp"参数内容,例如,执行下面的命令返回".;test.jar": java -cp .;test.jar Test 2. Jar文件中路径操作 2.1 获取当前代码所在Jar包的绝对路径 File f = new File(Test.class.getProtectionD
joymufeng
2018-05-17
6240
Java字符串处理技巧
1. 鲜为人知的replaceAll技巧 System.out.println("foo[0]".replaceAll("\\[(\\d+)\\]", ".$1")); //输出: foo.0 2. 构建一个重复的字符串 System.out.println(new String(new char[3]).replace("\0", "osc")); //输出: oscoscosc 3. 按行读取字符串 BufferedReader br = new BufferedReader(new StringRea
joymufeng
2018-05-17
8050
没有更多了
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档