Scala way to explore https:https://cdn.v2ex.com/navatar/c8ff/e9a5/124_normal.png?m=1488098428 https:https://cdn.v2ex.com/navatar/c8ff/e9a5/124_large.png?m=1488098428 2025-06-27T08:33:13Z Copyright © 2010-2018, V2EX 这个分类好久没新帖子了,记录下最新用 scala 3 写的项目 tag:www.v2ex.com,2025-06-27:/t/1141501 2025-06-27T08:31:51Z 2025-06-27T08:33:13Z timzaak member/timzaak
https://github.com/timzaak/log-http-proxy mitm http/https 代理, 面向 Qt 等不方便调试 https/http 请求的,开启后, 桌面开发用 switchHosts 修改下 dns 解析,可在 web 页面就可看到 http 请求内容。

https://github.com/timzaak/table2case 将数据库 table 转换成 case class ,并写入到文件中,额外支持 scalasql ,减少重复工作。

]]> sbt run 的时候,能不能跳过 compile 直接 run? tag:www.v2ex.com,2023-01-24:/t/910451 2023-01-24T07:32:59Z 2023-08-19T18:12:37Z eccstartup member/eccstartup 就是觉得每次 run 的时候要 compile 一次,等的时间半分钟有点长。

网上下载的仓库,我的文件几乎不会改动,能不能跳过 compile ?

熟悉的大佬请指点一下,无论是能与不能。

PS:文件在这

]]>
还有必要用 scala 吗 tag:www.v2ex.com,2022-03-31:/t/844067 2022-03-31T04:05:41Z 2022-04-02T13:42:43Z leiuu member/leiuu RT.

很多团队内写数据流,分为用 java 、scala 、python 三波。

鉴于目前 scala 不温不火,甚至热度有下降的趋势。

是否有必要在公司内部鼓励用 scala ?

是否有必要统一使用 java 开发,减少开发语言的技术栈的复杂度( scala 较复杂且应用不广泛)?

困扰了挺长一段时间的问题,发出来供大家讨论一下。

scala 趋势

]]>
有 scala 兄弟吗?有招 scala 的公司吗? tag:www.v2ex.com,2022-02-28:/t/836811 2022-02-28T01:31:56Z 2022-02-28T10:23:31Z exceldream member/exceldream Scala 单元测试 tag:www.v2ex.com,2021-11-17:/t/815973 2021-11-17T02:58:27Z 2021-11-17T02:57:27Z xianzhe member/xianzhe 最近接手一个项目要求补上单元测试,这个项目是做 spark 的,就是 Scala 写的 ETL 程序。请问针对这种项目用什么测试框架做比较好?

]]>
scala 模型导出问题 tag:www.v2ex.com,2021-01-26:/t/748401 2021-01-26T02:35:26Z 2021-01-26T02:34:26Z asensio member/asensio spark ml 导出模型 pmml 文件不成功,下面是 scala 代码

 val pmml = new PMMLBuilder(trainingData.schema, model).build() val targetFile = "target/model.pmml" val fis: FileOutputStream = new FileOutputStream(targetFile) val fout: StreamResult = new StreamResult(fis) JAXBUtil.marshalPMML(pmml, fout) 
Exception in thread "main" java.lang.IllegalArgumentException: Expected string, integral, double or boolean data type, got vector data type at org.jpmml.sparkml.SparkMLEncoder.createDataField(SparkMLEncoder.java:169) at org.jpmml.sparkml.SparkMLEncoder.getFeatures(SparkMLEncoder.java:76) at org.jpmml.sparkml.feature.VectorIndexerModelConverter.encodeFeatures(VectorIndexerModelConverter.java:52) at org.jpmml.sparkml.FeatureConverter.registerFeatures(FeatureConverter.java:50) at org.jpmml.sparkml.PMMLBuilder.build(PMMLBuilder.java:114) 
]]>
想用 Springboot 做后端接口,但组里 scala 大佬希望我用 Akka Http 怎么办 tag:www.v2ex.com,2020-08-14:/t/698252 2020-08-14T06:36:36Z 2020-08-26T15:31:16Z sakura1 member/sakura1 如题,在大数据架构组工作,组里的语言是 scala,会用 scala 写一些工作和框架,并且写一些 flink,spark 程序。

个人的确很喜欢 scala,但它的复杂也让人望而却步,平时写 flink 和 spark 都会用 scala 写。

但是个人不喜欢太多的语法糖和特殊符号,而且 akka 的消息编程模型感觉也不容易进行抽象。

从个人职业发展角度看也想用 springboot,毕竟 springboot 还是受众比较广。

怎么搞?

]]>
可能是家庭背景最深厚的程序员写的书... tag:www.v2ex.com,2020-06-17:/t/682251 2020-06-17T02:33:59Z 2020-09-17T08:44:24Z tzhhahaha member/tzhhahaha 最近 scala 大神李浩毅出了本书 《 hands on scala 》. 粗略看了 free chapters , 感觉写的还可以, 但是后面很多实用章节是收费的, 有买了这本书的吗? 写的咋样?

链接如下 https://www.handsonscala.com/

]]>
集合类型 filter 后执行 foreach 的效率 比 foreach 里写 if 来的慢 tag:www.v2ex.com,2020-05-21:/t/674090 2020-05-21T09:24:45Z 2020-05-21T10:38:38Z muziling member/muziling object test { def main(args: Array[String]): Unit = { def listTestD = (0 to 20000000).toList var l1 = System.currentTimeMillis() var sum = 0 listTestD.foreach{x=> if (x%2==0) sum = x} println(System.currentTimeMillis()-l1) sum = 0 l1 = System.currentTimeMillis() listTestD.filter(_%2==0).foreach(sum = _) println(System.currentTimeMillis()-l1) } }

执行结果是: 17585, 21059 效率差 20%左右

避免缓存,对掉两个 foreach

object test { def main(args: Array[String]): Unit = { def listTestD = (0 to 20000000).toList var l1 = System.currentTimeMillis() var sum = 0 listTestD.filter(_%2==0).foreach(sum = _) println(System.currentTimeMillis()-l1) sum = 0 l1 = System.currentTimeMillis() listTestD.foreach{x=> if (x%2==0) sum = x} println(System.currentTimeMillis()-l1) } } 

执行结果是: 35082, 16201 效率差近 50%。

如果 listTestD 存储一个对象的内容,效率是不是会差更大?

]]>
sbt 为什么能这么垃圾? tag:www.v2ex.com,2019-09-11:/t/600133 2019-09-11T10:10:53Z 2020-01-30T23:44:30Z jakevin member/jakevin 网上能试的解决方案全试过了,还是拉不动依赖

]]>
sbt 1.3.0 released, 依赖管理从 ivy 变为 Coursier tag:www.v2ex.com,2019-09-05:/t/598065 2019-09-05T00:25:27Z 2019-09-07T14:19:18Z SabaPing member/SabaPing ##主要更新为:

"Combined together we hope these features will improve the user experience of running your builds."

详细 release note

]]>
如何停止已经提交到 Spark 集群上的任务? tag:www.v2ex.com,2019-08-21:/t/593903 2019-08-21T08:29:55Z 2019-08-21T09:26:55Z sl19981007 member/sl19981007 Scala 元编程:在日志库中的应用 tag:www.v2ex.com,2019-07-17:/t/583938 2019-07-17T14:29:50Z 2019-07-17T14:26:50Z sadhen member/sadhen Scala 中常用的第三方日志库,我这边了解的有 log4s^1和 Scala Logging^2两个。

在 Scala Logging 中:

logger.debug(s"Some $expensive message!") 

会被 Scala 的宏转换成:

if (logger.isDebugEnabled) logger.debug(s"Some $expensive message!") 

因为在实际代码运行时,实际上会先做字符串插值,然后在看日志级别为 DEBUG 的日志是否需要输出。所以我们通过 if 语句,防止不必要的字符串操作,进而改善性能。

那么 Scala Logging 是如何做到改写表达式的呢?

在上一篇^3实现 lombok.Data 的时候,我们实际上是通过注解告诉编译器,我们需要在该注解所作用的类上面生成 getter 和 setter。说白了,就是注解 @data 让我们定位具体的类,然后我们再插入代码。而这个例子实际上是直接将生成代码的规则和具体的方法衔接起来。

完整的实现如下所示:

final class Logger private (val underlying: org.slf4j.Logger) { def debug(message: String): Unit = macro LoggerMacro.debugMessage } private object LoggerMacro { type LoggerCOntext= blackbox.Context {type PrefixType = Logger} private def deconstructInterpolatedMessage(c: LoggerContext) (message: c.Expr[String]) = { import c.universe._ message.tree match { case q"scala.StringContext.apply(..$parts).s(..$args)" => val format = parts.iterator.map({ case Literal(Constant(str: String)) => str }) // Emulate standard interpolator escaping .map(StringContext.treatEscapes) // Escape literal slf4j format anchors if the resulting call will require a format string .map(str => if (args.nonEmpty) str.replace("{}", "\{}") else str) .mkString("{}") val formatArgs = args.map(t => c.Expr[Any](t)) (c.Expr(q"$format"), formatArgs) case _ => (message, Seq.empty) } } private def formatArgs(c: LoggerContext)(args: c.Expr[Any]*) = { import c.universe._ args.map { arg => c.Expr[AnyRef]( if (arg.tree.tpe <:< weakTypeOf[AnyRef]) arg.tree else q"$arg.asInstanceOf[_root_.scala.AnyRef]" ) } } def debugMessageArgs(c: LoggerContext) (message: c.Expr[String], args: c.Expr[Any]*): c.universe.Tree = { import c.universe._ val underlying = q"${c.prefix}.underlying" val anyRefArgs = formatArgs(c)(args: _*) if (args.length == 2) q"if ($underlying.isDebugEnabled) $underlying.debug($message, _root_.scala.Array(${anyRefArgs.head}, ${anyRefArgs(1)}): _*)" else q"if ($underlying.isDebugEnabled) $underlying.debug($message, ..$anyRefArgs)" } def debugMessage(c: LoggerContext) (message: c.Expr[String]): c.universe.Tree = { val (messageFormat, args) = deconstructInterpolatedMessage(c)(message) debugMessageArgs(c)(messageFormat, args: _*) } } 

首先,blackbox.Context 事实上限定了这个宏的作用域—即在类 Logger 之中。可以观察到,单例 LoggerMacro 的每一个方法都带有 LoggerContext 这个参数,每一个方法的具体实现,也和 LoggerContext 有一定的关系。

debugMessage 函数首先将字符串插值这个表达式通过 deconstructInterpolateMessage 解构成 messageFormat 和 args。下面这段代码可以非常明确的解释,什么是 messageFormat 以及什么是 args:

logger.info("Info :{}" , user.getName()) 

如果是 Scala 的字符串插值的话,就是 s"Info :${user.getName}"。

解构之后,我们只需要通过 Quasiquote 将带有条件语句的代码重新构造起来就可以了。

编译期和运行时

另外一个需要注意的点是,在使用 @data 的时候,我们实际上需要在工程中开启 Paradise 插件,而我们在使用 Scala Logging 的时候,实际上直接依赖 Scala Logging 就可以了,不需要开启 Paradise 插件。这就涉及到一个问题:我们在上一节中做了详细解释的代码,到底是在哪个环节执行的。

很简单,我们可以通过在 debugMessage 增加日志的方式,确定这个细节。

最终发现,实际上,我们依赖了 Scala Logging,但是项目自身没有使用编译插件,在编译过程中,编译器遇到 Scala Logging 中会生成代码的方法时,实际上还是会去利用编译插件,生成代码。

总结

实际上,这一篇的内容虽然在宏的具体使用接口上和 lombok.Data 那一篇有细节上的差异,但实际上最终生成代码的还是在使用 Quasiquote,所以如何高效地在 REPL 中尝试 Quasiquote 至关重要。Quasiquote 是伊甸园元编程中最枯燥最耗时的一个环节,而通过何种方式去将常规的代码和宏生成的代码衔接起来,则是伊甸园中一扇隐秘的大门。

阅读原文:Scala 元编程:在日志库中的应用

]]>
关于《Scala 编程(3rd)》中, 20.6 抽象类型 P424 的疑问 tag:www.v2ex.com,2019-07-03:/t/579808 2019-07-03T15:59:28Z 2019-07-04T06:00:46Z zhenwang member/zhenwang 在《 Scala 编程( 3rd )》中,20.6 抽象类型这一节中,本人有个非常不解的地方,书中提到:

class Food abstract class Animal { def eat(food: Food) } class Grass extends Food class Cow extends Animal { override def eat(food: Grass) = {} // 这不能编译 } // 如果能的话... class Fish extends Food val bessy: Animal = new Cow bessy eat (new Fish) // ...你就能给牛吃草了 

本人理解 override 超类方法,方法参数是不支持协变的,但是上文假设通过编译,"bessy eat (new Fish)"不是本来就不能运行吗? Fish 本来就不能上转型为 Grass 呀。何况如下重写 eat 方法岂不是同样有这个问题?

class Cow extends Animal { override def eat(food: Food): Unit = {} } val cow = new Cow cow eat new Fish // 能通过编译且运行 

小弟不才,一直没理解,希望各位大佬轻喷

]]>
请教下关于用 Flume+kafka+Spark 实现实时监控错误日志报警的功能 tag:www.v2ex.com,2019-04-23:/t/557814 2019-04-23T03:05:23Z 2019-04-23T10:03:04Z KOSKERS member/KOSKERS 大家好,请教下关于用 Flume+kafka+Spark 实现实时监控错误日志报警的功能。 目前 Flume 和 Kafka 的相关功能已经通了。但是 spark 没什么使用经验。 看网上教程是要自己写 Scala 脚本然后打成 jar 包给 Spark 执行。

我想用 spark 实现检测 kafka 的数据流,如果发现 error 字样,就发送邮件。 请问各位大佬有没有相关脚本或者教程的地址可以参考的?

谢谢大家。

]]>
闲话 Scala Native: 初次见面,请多多关照 tag:www.v2ex.com,2019-03-01:/t/540173 2019-03-01T13:57:54Z 2019-03-01T13:58:53Z sadhen member/sadhen 首先用 scala-native 的 g8 模板创建一个脚手架:

$ sbt new scala-native/scala-native.g8 ... A minimal project that uses Scala Native. name [Scala Native Seed Project]: scala-native-playground Template applied in /path/to/scala-native-playground 

只要输入你想创建的工程的名字,整个脚手架就搭建起来了。

我们试着编译运行一下这个脚手架:

$ cd scala-native-playground $ sbt sbt:scala-native-playground> compile [info] Non-compiled module 'compiler-bridge_2.11' for Scala 2.11.12. Compiling... [info] Compilation completed in 6.179s. [info] Done compiling. [success] Total time: 177 s, completed 2019-2-24 10:24:54 sbt:scala-native-playground> run [error] no clang60, clang-6.0, clang50, clang-5.0, clang40, clang-4.0, clang39, clang-3.9, clang38, clang-3.8, clang37, clang-3.7, clang found in $PATH. Install clang ( http://www.scala-native.org/en/latest/user/setup.html) [error] no clang++60, clang++-6.0, clang++50, clang++-5.0, clang++40, clang++-4.0, clang++39, clang++-3.9, clang++38, clang++-3.8, clang++37, clang++-3.7, clang++ found in $PATH. Install clang ( http://www.scala-native.org/en/latest/user/setup.html) [error] (nativeClang) no clang60, clang-6.0, clang50, clang-5.0, clang40, clang-4.0, clang39, clang-3.9, clang38, clang-3.8, clang37, clang-3.7, clang found in $PATH. Install clang ( http://www.scala-native.org/en/latest/user/setup.html) [error] (nativeClangPP) no clang++60, clang++-6.0, clang++50, clang++-5.0, clang++40, clang++-4.0, clang++39, clang++-3.9, clang++38, clang++-3.8, clang++37, clang++-3.7, clang++ found in $PATH. Install clang ( http://www.scala-native.org/en/latest/user/setup.html) [error] Total time: 0 s, completed 2019-2-24 10:26:01 

能正常编译,但是运行的时候会报错。按照提示,我们需要安装一些依赖:

$ sudo apt install clang libunwind-dev 

然后,在重新在 sbt 的 REPL 里面敲 Run 就可以了。大概是这样:

sbt:scala-native-playground> run [info] Linking (534 ms) [info] Discovered 800 classes and 4709 methods [info] Optimizing (debug mode) (742 ms) [info] Generating intermediate code (242 ms) [info] Produced 39 files [info] Compiling to native code (332 ms) [info] Linking native code (immix gc) (60 ms) Hello, world! [success] Total time: 3 s, completed 2019-2-24 10:27:45 

整个过程还是比较流畅的,没有遇到特别浪费时间的事情,by the way,我所用的 Scala Native 版本是 0.3.8,这一点从project/plugins.sbt可以知道。

$ cat project/plugins.sbt addSbtPlugin("org.scala-native" % "sbt-scala-native" % "0.3.8") 

====> 点我返回文章目录 <====

]]>
Scala 中不带具体实现的 object 是什么用法 tag:www.v2ex.com,2019-01-22:/t/529566 2019-01-22T10:55:55Z 2019-01-28T21:38:20Z zhutmost member/zhutmost 我在代码Link里看到

import ... object DataAssign object InitAssign trait DataPrimitives[T <: Data] { // ... Other codes 

其中上面这两个 object 这里都没有具体实现。请问这是什么用法,有什么参考材料么? 谢谢

]]>
scala 命令行删除字符不能正常显示 tag:www.v2ex.com,2018-12-10:/t/516332 2018-12-10T23:19:57Z 2018-12-24T23:39:36Z bigeast member/bigeast
readline 快捷键也不能用,也是在后面显示空格。

操作系统是 macOS 10.14.1,scala 是 brew install scala 安装的 2.12.7 版本。如果一次性输入正确的程序,不进行编辑,可以正常运行。

刚才从官网上下载 scala-2.12.8.tgz ,也是同样的问题。

终端本来是 iTerm2 + zsh,换用了系统自带的 terminal + /bin/bash 还是同样的问题。搜了半天没看到有类似问题的,困扰好几天了。

录了个屏: https://www.bilibili.com/video/av37498682/ ]]>
spark 技术面试被问到个问题,有点问懵逼了,求指点 tag:www.v2ex.com,2018-12-07:/t/515228 2018-12-07T01:36:27Z 2019-02-22T05:32:10Z naga1003 member/naga1003 问题:什么应用场景下 group by 比 reduce by 更好?

当时懵逼了,感觉不是默认都尽量使用 reduce by 吗,现在我能想到的情况也只有在 key 值非常少的情况下用 group by 比较好,不知道对不对。

]]>
scala 中 _ 的语法问题 tag:www.v2ex.com,2018-11-19:/t/509323 2018-11-19T08:52:54Z 2018-12-02T00:55:26Z jiuziqie member/jiuziqie 再看 twitter 的 Scala School,有一段代码看不懂,特来求教

def f(s: String) = "f(" + s + ")" def g(s: String) = "g(" + s + ")" // 就是这里看不懂 val fComposeG = f _ compose g _ 

想问一下 这个 _ 在这里是什么作用? 这是一种什么用法呀?

]]>
[小广告] scala 中文 telegram 群组: t.me/scala_zh tag:www.v2ex.com,2018-06-02:/t/459794 2018-06-02T04:46:24Z 2018-06-02T04:43:24Z ererermao member/ererermao 无意间发现了 v2 还有 scala 的标签,又看到了t/431491
所以就宣传一下 telegram 的群组。

]]>
Scala 中国社区、微信群? tag:www.v2ex.com,2018-02-21:/t/431491 2018-02-21T10:41:37Z 2018-03-13T14:30:13Z dolph member/dolph 之前经验主要是 Haskell (大学从大一写到毕业),现在工作了经常写 Scala,座标深圳,希望找到大本营一起交流 /介绍工作

zhihu: https://www.zhihu.com/people/Martinawd

]]>
Scala's types of types 译文 tag:www.v2ex.com,2018-01-08:/t/421155 2018-01-08T11:45:49Z 2018-01-19T07:15:02Z wqlin member/wqlin 看到一篇不错的博文,介绍 Scala 类型系统:Scala's types of types

于是把它翻译成中文了,详见 Scala 中不同类型的类型。 不过有几个章节原作者还未完成。

欢迎指点和建议。

]]>
Scala 自学笔记-参考书籍 Programming in Scala 第三版 tag:www.v2ex.com,2017-10-30:/t/401833 2017-10-30T02:34:28Z 2018-07-12T03:51:43Z hanwang member/hanwang 最近开始学习 Scala,想借此机会开始锻炼自己写日志和总结。 刚总结了三章,希望能保持更新。:)

Scala 自学

Scala 概览(第一篇)

Scala 的类与对象(第二篇)

参考书籍

Programming in Scala 第三版

]]>
scala 如何实现某个代码段同一时刻只能有一个进程在读,其他进程只能等待。 tag:www.v2ex.com,2017-10-26:/t/400979 2017-10-26T07:56:03Z 2017-10-26T08:16:23Z tttty member/tttty 请问该怎样结合实践去学习 Scala,谢谢! tag:www.v2ex.com,2017-10-08:/t/395949 2017-10-08T07:55:45Z 2018-10-10T06:08:53Z whoam1 member/whoam1 最近学习 Scala,在看《 Scala 编程》(programming in scala),看到了 20 章,现在知识特别零散,学得很不踏实。也尝试过学习 play 框架,网上查到的资料不多(中文英文感觉都挺少),可以借鉴的例子也很少(主要是其中用了很多其它的库,导致我现在去写的话只能 “复制粘贴” 其中的代码,很多原理不理解)。

请问怎样结合项目去实践呢?或者说哪些框架(模块)适合初学者学习(阅读)呢?希望大家能谈谈自己的想法,谢谢!

]]>
欢迎来访开放源码的 PlayScala 社区(http://www.playscala.cn) tag:www.v2ex.com,2017-08-15:/t/383113 2017-08-15T07:38:16Z 2017-08-14T07:38:16Z joymufeng member/joymufeng 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 社区正是基于这样的原因而诞生的,并且希望能够实现以下几个愿景:

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

欢迎来访: PlayScala 社区

]]>
请问我下载了乌云的 digatalAllData,说明上写着用 case class 解析出数据,那有没有详细的方法? tag:www.v2ex.com,2017-03-02:/t/344448 2017-03-02T13:34:59Z 2017-03-16T12:58:49Z mscsky member/mscsky 如题,下载了 2.9g 的数据不熟悉 scala 不知道怎么读取出来 readme 如下

“如果使用 scala,可以使用如下 case class 解析出数据

 case class Answer(answer_id: Long, question_id: Long, question_title: String, question_topics: Array[Long], votup_count: Long) case class Article(id: Long, title: String, votup_count: Long) case class Question(question_followers: Long, question_id: Long, question_title: String, question_topics: Array[Long]) case class userStringId(CREATED_ANSWERS: Array[Answer], CREATED_ARTICLES: Array[Article], CREATED_QUESTIONS: Array[Question], FOLLOWED_QUESTIONS: Array[Question], VOTEUPED_ANSWERS: Array[Answer], VOTEUPED_ARTICLES: Array[Article], followers_count: Long, id: String) case class userDigitalId(CREATED_ANSWERS: Array[Answer], CREATED_ARTICLES: Array[Article], CREATED_QUESTIONS: Array[Question], FOLLOWED_QUESTIONS: Array[Question], VOTEUPED_ANSWERS: Array[Answer], VOTEUPED_ARTICLES: Array[Article], followers_count: Long, id: Long) 
]]>
嘿,Scala 这货你们都应用在什么项目上了,打算接触试试呢~ tag:www.v2ex.com,2017-02-28:/t/343813 2017-02-28T07:13:38Z 2017-03-01T01:39:26Z codingKingKong member/codingKingKong 如题.已发现的好像有 spark.

]]>
sbt package 将 scala 源代码一并打包进去? tag:www.v2ex.com,2017-01-11:/t/333960 2017-01-11T12:39:48Z 2017-01-11T13:36:48Z tommark member/tommark 如题,怎么将源码连同字节码一并打包在一起,这样可以直接查看 jar 里每个 class 的源码?

]]>
大家都用什么 orm 或 mysql db library tag:www.v2ex.com,2016-12-20:/t/328842 2016-12-20T04:37:06Z 2017-01-15T20:01:27Z twm member/twm 询问有关 Scala 的实习, 工业应用等 tag:www.v2ex.com,2016-10-05:/t/310640 2016-10-05T03:32:49Z 2016-10-06T22:11:43Z wqlin member/wqlin 想问这几个问题啊:
1. 各位 V 友在工作或者学习中听过或者使用过 Scala 吗? 如果有的话, 能说下你使用这语言的感受吗?
2. 想请问下有 V 友知道广州或者深圳哪里有公司招 Scala 实习或者有 Scala 校招, 因为自己在招聘网站上没怎么看到有这方面的公司在招人, 主要是上海 北京这些地方才有使用 Scala 的公司. 如果知道的话, 能麻烦告知一下吗?
谢谢啦~~~ ]]>
sbt 的自定义 resolvers 被-Dsbt.override.build.repos=true 覆盖掉了 tag:www.v2ex.com,2016-09-25:/t/308835 2016-09-25T07:30:34Z 2016-09-25T07:27:34Z hujianxin member/hujianxin 由于项目用到了 HDP 的东西,所以我在 build.sbt 里面添加了 resovlers ,

resolvers += "Hortonworks Repository" at "http://repo.hortonworks.com/content/repositories/releases/" resolvers += "Hortonworks Jetty Maven Repository" at "http://repo.hortonworks.com/content/repositories/jetty-hadoop/" 

但是,如果我使用-Dsbt.override.build.repos=true 的话,这个 resolvers 就会被覆盖掉,没法使用了,有人能解决这个问题吗?感谢

]]>
谁能说说 scala 和 python 的区别,有木有必要学习 scala? tag:www.v2ex.com,2016-08-04:/t/296998 2016-08-04T01:32:08Z 2016-08-09T00:16:00Z ideaplat member/ideaplat IDEA 的 sbt 依赖解决问题 tag:www.v2ex.com,2016-07-27:/t/295396 2016-07-27T23:58:21Z 2016-07-28T06:18:19Z hujianxin member/hujianxin 在 IDEA 中, build.sbt 中,有的依赖下面有红色波浪线,显示有依赖没有解决,但是事实是这些依赖包已经下载下来了,也没有依赖没解决的报错,在程序中可以使用。

有朋友遇到过这个问题吗?

]]>
话说 V2 里有搞 Scala 的同学吗? tag:www.v2ex.com,2016-05-06:/t/276740 2016-05-06T05:23:31Z 2017-03-13T13:48:30Z fengkuok member/fengkuok 还有必要学 scala 吗? tag:www.v2ex.com,2016-04-18:/t/272075 2016-04-18T12:52:49Z 2016-05-14T04:19:11Z pc10201 member/pc10201 http://www.yinwang.org/blog-cn/2016/01/18/java

另外 JB 家也新出一个语言, kotlin ]]>
Scala China 的 Telegram 群 tag:www.v2ex.com,2016-03-28:/t/266847 2016-03-28T06:50:39Z 2016-03-28T06:47:39Z sadhen member/sadhen https://telegram.me/joinchat/CrT-5wdboBqVUghsU98uvA ]]> Scala 2.12 will require Java 8. tag:www.v2ex.com,2016-02-19:/t/257643 2016-02-19T07:15:39Z 2016-02-19T11:05:30Z zxgngl member/zxgngl http://scala-lang.org/news/2.12-roadmap/

]]>
仿照 scrapy 的设计用 scala 写了一个爬虫框架 tag:www.v2ex.com,2016-01-31:/t/254642 2016-01-31T10:55:10Z 2016-01-31T17:52:10Z gaocegege member/gaocegege http://gaocegege.com/scrala
github: https://github.com/gaocegege/scrala

写着玩的,用来学习 scala 的造轮子作品,代码很简单,读起来很快,有感兴趣的同学一起来呀(捂脸 ]]>
V2EX 里有 scala 爱好者吗? tag:www.v2ex.com,2015-10-07:/t/226182 2015-10-07T16:01:27Z 2015-10-07T16:44:09Z WeberXie member/WeberXie 国庆把 scala 编程看了大半,有什么练手的小项目么?有没有组织呀?

]]>
此处有 Scala 爱好者吗? tag:www.v2ex.com,2015-10-07:/t/226148 2015-10-07T13:03:30Z 2015-10-15T00:34:18Z chanlion member/chanlion Java 虽然是使用人数最多的语言, 但是其冗余的书写方式为人所诟病. Scala 不仅完全兼容 Java 而且还带来了函数式编程以及 Actor 模型并发机制. 我现在已经对 Scala 语言蠢蠢欲动了, 敢问 V2EX 有 Scala 爱好者吗? 你们撸 Scala 感觉如何? 有什么切身感受的好处或坏处吗?

]]>
10 Scala One Liners to Impress Your Friends tag:www.v2ex.com,2015-06-30:/t/202332 2015-06-30T15:26:59Z 2015-06-30T15:23:59Z yhf member/yhf https://mkaz.com/2011/05/31/10-scala-one-liners-to-impress-your-friends/

]]>
有什么方法,能够使得主程序在 Actor 执行了 exit 后才继续执行么~? tag:www.v2ex.com,2015-06-10:/t/197394 2015-06-10T00:00:13Z 2015-06-10T14:16:04Z gaocegege member/gaocegege
https://gist.github.com/gaocegege/689f926645c820993804


这里的"???"总是在ping和pongexit前就输出了,有什么办法能够使得程序在所有的Actor结束后,再执行么~ ]]>
李光耀似乎有个能称为 Scala 大神的孙子! tag:www.v2ex.com,2015-05-31:/t/195175 2015-05-31T15:58:25Z 2016-07-28T09:41:19Z wenLiangcan member/wenLiangcan
https://github.com/lihaoyi

写了好多炫酷的项目,以 Scala 为主,比如这些:

https://github.com/lihaoyi/scalatags
https://github.com/lihaoyi/Metascala
https://github.com/lihaoyi/Scalite
https://github.com/lihaoyi/Scalatex

不过知道他是看到这个 Python 的项目:
https://github.com/lihaoyi/macropy

感觉像华人,不过主页没有任何链接,找不到他有博客什么的。
刚刚无聊 google 了一下 who is li haoyi,结果出来这个维基页面:

http://en.wikipedia.org/wiki/Lee_Kuan_Yew%27s_family_tree

如果就是本人的话似乎是李光耀的孙子,李显龙的儿子。。。 ]]>
Scala on Android tag:www.v2ex.com,2015-04-18:/t/184586 2015-04-18T09:50:37Z 2015-04-18T09:50:37Z Livid member/Livid http://macroid.github.io/ScalaOnAndroid.html ]]> scala 值得学习么?被逼着学习这货了:( tag:www.v2ex.com,2015-02-05:/t/168479 2015-02-05T05:34:40Z 2015-04-11T22:07:02Z esyed member/esyed 有时候不是想学,而是某项目是用某语言写的,
要基于这个项目做个东西,于是被逼着学一门新的语言,这该是有多悲催啊:(

这里有人搞过scala么?
这货上手是否要很多?里面是不是也有很多的lib要学?
额的神啊,救救我吧:(

]]>
Scala 怎么做如下变换:(A,B,C) => (A,(B,C)) (B,(A,C)) (C,(A,B)) tag:www.v2ex.com,2014-11-02:/t/143494 2014-11-02T15:32:06Z 2014-11-08T01:15:54Z 11 member/11 (A,B,C) => (A,(B,C)) 这一步好说,直接取 head tail 就可以了。但是取每一个元素都做这个操作怎么搞?

]]>
Scala By Example,Scala 之父 Martin 今天刚更新/发布的教程 tag:www.v2ex.com,2014-04-06:/t/107437 2014-04-06T10:26:47Z 2014-05-07T20:34:47Z lichgo member/lichgo http://www.scala-lang.org/docu/files/ScalaByExample.pdf ]]> ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86