gpt4 book ai didi

ruby - 来自 Rubyist 的关于 Scala 的问题

转载 作者:数据小太阳 更新时间:2023-10-29 06:27:03 24 4
gpt4 key购买 nike

我最近在业余时间四处寻找学习一门新语言,Scala 似乎很有吸引力。

我有几个问题:

  1. 不知道 Java 会强加一个挑战学习吗?那将会一个很大的缺点稍后的? (即人们多久依赖一次特定于 Java 的库? )

  2. 差别有多大与 ruby 相比? (除了被静态类型)是否引入很多新术语,或者我会熟悉大多数语言机制?

  3. 您会推荐哪些资源?我关注 Programming ScalaBeginning Scala 书籍

  4. 虽然主观,但使用 Scala 编程是否有趣? :P

谢谢

最佳答案

Ruby 和 Scala 之间有许多共同的概念。我已经有一段时间没有编写 Ruby 代码了,所以这并不详尽。

Ruby <==> Scala(大约!)

  • Mixins <==> Traits
  • Monkey Patching <==> Pimp My Library(隐式转换为带有额外方法的包装器)
  • 过程/闭包<==>函数/函数字面量
  • Duck Typing <==> 结构类型
  • 作为 Proc 的最后一个参数 <==> Curried 参数列表(参见 Traversable#flatMap)
  • 可枚举<==>可遍历
  • 收集<==> map
  • 注入(inject) <==> foldLeft/foldRight
  • Symbol.toProc <==> 占位符语法糖:people.map(_.name)
  • 动态类型的简洁性<==>类型推断
  • Nil <==> null,尽管 Option 更可取。 (不是 Nil,这是一个空列表!)
  • 一切都是表达式<==>同上
  • 符号/散列作为参数<==>命名和默认参数
  • 单例 <==> 对象 Foo {}
  • 一切都是对象<==>一切都是类型或对象(包括函数)
  • 无基元 <==> 统一类型系统,Any 是基元和对象的父类(super class)型。
  • 一切都是消息<==>运算符只是方法调用

你可能会错过的 Ruby 特性

  • 方法_缺失
  • 定义方法等

你应该学习的 Scala 特性

  • 模式匹配
  • 不可变类,特别是案例类
  • 隐式 View 和隐式参数
  • 类型、类型和更多类型:泛型、变体、抽象类型成员
  • 对象和函数的统一,applyupdate方法的特殊含义。

关于ruby - 来自 Rubyist 的关于 Scala 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2351433/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com