惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

W
WeLiveSecurity
The Last Watchdog
The Last Watchdog
Application and Cybersecurity Blog
Application and Cybersecurity Blog
G
Google Developers Blog
博客园 - 叶小钗
雷峰网
雷峰网
人人都是产品经理
人人都是产品经理
博客园_首页
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
博客园 - 三生石上(FineUI控件)
Help Net Security
Help Net Security
Cloudbric
Cloudbric
AI
AI
N
News | PayPal Newsroom
博客园 - 聂微东
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - 【当耐特】
Forbes - Security
Forbes - Security
美团技术团队
Stack Overflow Blog
Stack Overflow Blog
SecWiki News
SecWiki News
H
Heimdal Security Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
MyScale Blog
MyScale Blog
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
P
Proofpoint News Feed
S
Security @ Cisco Blogs
Google DeepMind News
Google DeepMind News
V
V2EX
大猫的无限游戏
大猫的无限游戏
阮一峰的网络日志
阮一峰的网络日志
S
Security Affairs
L
LangChain Blog
The Hacker News
The Hacker News
F
Full Disclosure
aimingoo的专栏
aimingoo的专栏
Hacker News - Newest:
Hacker News - Newest: "LLM"
腾讯CDC
Webroot Blog
Webroot Blog
A
About on SuperTechFans
H
Hacker News: Front Page
Cyberwarzone
Cyberwarzone
WordPress大学
WordPress大学
L
LINUX DO - 热门话题
Recent Commits to openclaw:main
Recent Commits to openclaw:main
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Attack and Defense Labs
Attack and Defense Labs
M
MIT News - Artificial intelligence

Scala

这个分类好久没新帖子了,记录下最新用 scala 3 写的项目 - V2EX sbt run 的时候,能不能跳过 compile 直接 run? - V2EX 还有必要用 scala 吗 - V2EX 有 scala 兄弟吗?有招 scala 的公司吗? - V2EX Scala 单元测试 - V2EX scala 模型导出问题 - V2EX 想用 Springboot 做后端接口,但组里 scala 大佬希望我用 Akka Http 怎么办 - V2EX 可能是家庭背景最深厚的程序员写的书... - V2EX 集合类型 filter 后执行 foreach 的效率 比 foreach 里写 if 来的慢 - V2EX sbt 为什么能这么垃圾? - V2EX sbt 1.3.0 released, 依赖管理从 ivy 变为 Coursier - V2EX 如何停止已经提交到 Spark 集群上的任务? - V2EX Scala 元编程:在日志库中的应用 - V2EX 关于《Scala 编程(3rd)》中, 20.6 抽象类型 P424 的疑问 - V2EX 请教下关于用 Flume+kafka+Spark 实现实时监控错误日志报警的功能 - V2EX 闲话 Scala Native: 初次见面,请多多关照 - V2EX Scala 中不带具体实现的 object 是什么用法 - V2EX scala 命令行删除字符不能正常显示 spark 技术面试被问到个问题,有点问懵逼了,求指点 - V2EX scala 中 _ 的语法问题 - V2EX [小广告] scala 中文 telegram 群组: t.me/scala_zh Scala 中国社区、微信群? - V2EX Scala's types of types 译文 - V2EX Scala 自学笔记-参考书籍 Programming in Scala 第三版 - V2EX scala 如何实现某个代码段同一时刻只能有一个进程在读,其他进程只能等待。 请问该怎样结合实践去学习 Scala,谢谢! - V2EX 请问我下载了乌云的 digatalAllData,说明上写着用 case class 解析出数据,那有没有详细的方法? - V2EX 嘿,Scala 这货你们都应用在什么项目上了,打算接触试试呢~ - V2EX sbt package 将 scala 源代码一并打包进去? - V2EX 大家都用什么 orm 或 mysql db library - V2EX 询问有关 Scala 的实习, 工业应用等 - V2EX sbt 的自定义 resolvers 被-Dsbt.override.build.repos=true 覆盖掉了 - V2EX 谁能说说 scala 和 python 的区别,有木有必要学习 scala? - V2EX IDEA 的 sbt 依赖解决问题 - V2EX 话说 V2 里有搞 Scala 的同学吗? - V2EX 还有必要学 scala 吗? - V2EX Scala China 的 Telegram 群 - V2EX Scala 2.12 will require Java 8. - V2EX 仿照 scrapy 的设计用 scala 写了一个爬虫框架 - V2EX V2EX 里有 scala 爱好者吗? - V2EX 此处有 Scala 爱好者吗? - V2EX 10 Scala One Liners to Impress Your Friends - V2EX 有什么方法,能够使得主程序在 Actor 执行了 exit 后才继续执行么~? - V2EX 李光耀似乎有个能称为 Scala 大神的孙子! - V2EX Scala on Android - V2EX scala 值得学习么?被逼着学习这货了:( - V2EX Scala 怎么做如下变换:(A,B,C) => (A,(B,C)) (B,(A,C)) (C,(A,B)) - V2EX Scala By Example,Scala 之父 Martin 今天刚更新/发布的教程 - V2EX
欢迎来访开放源码的 PlayScala 社区(http://www.playscala.cn) - V2EX
joymufeng · 2017-08-15 · via Scala

Play Framework 从问世至今已经十个年头了,但是可惜的是这么优秀的框架在国内却鲜为人知。尤其是当 Play Framework 2.x 发布以后,基于 Scala 语言重写了整个框架。当 Scala 和 Play Framework 相遇,这本该是一段美好的佳话,可结局却是,面对 Scala 语言更多的人望而却步。 这其实都是因为人们潜意识里对未知事物充满恐惧。但其实 Scala 没那么可怕,相反了解它一点你会觉得它很可爱。例如很多人看到 Scala 使用::拼接元素,使用:::拼接列表,例如:

val list1 = List("c", "a", "l", "a")
val list2 = s :: list1 // list2: (s, c, a, l, a)
val list3 = List("p", "l", "a", "y")
val list4 = list3 ::: list2 // list4: (p, l, a, y, s, c, a, l, a)

然后就开始吐槽:WTF,这是什么鬼? 别急,给我一分钟时间,看看能否说服你! 首先你需要了解一个基本概念,在 Scala 中一切都是方法:

"a" * 3 //等价于: "a".*(3)
2 - 1   //等价于: 2.-(1)

所以没错,你之前看到的::和:::自然也是方法,只不过是为了简洁,省略了.和()。List 是由 head 和 tail 拼接在一起的递归结构(这种设计在模式匹配时非常方便)。List 的定义可以写成如下形式:

head :: tail

head 是首元素,tail 是剩余的 List。仔细瞧瞧,::看起来是不是很像胶水,将列表的头和尾紧紧地粘在一起,更进一步,:::可以把两个列表粘在一起。这样的代码是不是很简洁,并且富有表达力! 在 Scala 中,这种简洁的设计比比皆是,例如我们再来看看如何构建一个 Map 实例:

val map = Map("name" -> "PlayScala 社区", "url" -> "http://www.playscala.cn")

感受一下,是不是非常清晰明了。 当然 Scala 的魅力远不止如此,当你慢慢了解它时,你会慢慢深陷而无法自拔。 讲了那么多,我只想告诉你 Scala 并不可怕,其实在 Play Framework 中,你根本就不需要抱着 Scala 书籍啃完再写代码,PlayScala 社区会为你准备一篇 30 分钟的为 Play 初学者准备的 Scala 基础知识,读完你就可以投入 Play Framework 的怀抱了。

好了,回归正题,那为什么要创建 PlayScala 社区呢? 主要原因是国内 Play Framework 的第一手中文学习资料非常稀缺,虽然在网上可以找到一些教程,但是知识的碎片化很严重,并且很多质量较差的文章会影响初学者的认知。PlayScala 社区正是基于这样的原因而诞生的,并且希望能够实现以下几个愿景:

  • PlayScala 社区开放源码,希望通过大家的努力,将 Play Framework 开发的最佳实践全都囊括进来,供大家日常开发参考。
  • 维护一个高质量的『学习』板块,系统而全面地介绍 Play Framework 开发的相关知识,并将 PlayScala 社区源码中的最佳实践在这里以文档的形式阐述,你可以认为它是 Play Framework 官方文档的一个有力补充。
  • 提供一个交流互动平台。PlayScala 社区的『分享』和『问答』板块是为『学习』板块服务,这两个板块沉淀下来的知识最终会被收录到『学习』板块。

希望在大家的一起努力下,可以让更多的人了解并加入 Play Framework 的开发行列,不断增强 Play Framework 在国内的影响力。

欢迎来访: PlayScala 社区