最简单的typeclass示例是什么

扬·莫桑(Yann Moisan)

我想实现最简单的typeclass示例。

我来了:我的typeclass只是常规的scala特性

scala> trait Show[A] { def show(a: A) : String }
defined trait Show

这是我的类型类型为Int的实例

scala> implicit val IntShow = new Show[Int] { def show(i: Int) = s"'$i' is an int" }
IntShow: Show[Int] = $anon$1@14459d53

这是使用我的typeclass的客户端代码

scala> def f[A](a:A)(implicit s : Show[A]) = println(s.show(a))
f: [A](a: A)(implicit s: Show[A])Unit

叫它吧

scala> f(1)
'1' is an int

会更简单吗?

克里斯·马丁

当然-您可以删除该方法。

scala> trait Show[A]
defined trait Show

scala> implicit object IntShow extends Show[Int]
defined object IntShow

您还可以通过使用上下文绑定而不是隐式参数来稍微清理用法代码。

scala> def f[A : Show](a: A) = a
f: [A](a: A)(implicit evidence$1: Show[A])A

示例调用(以证明此类型类至少具有某些作用):

scala> f(3)
res0: Int = 3

scala> f("3")
<console>:11: error: could not find implicit value for
evidence parameter of type Show[String]
              f("3")
               ^

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

带有Java配置的Spring OAuth2最简单的示例是什么?

来自分类Dev

在此示例中,在tidyverse和ggplot中订购盒装图的最简单方法是什么?

来自分类Dev

检查X11转发是否正常的最简单示例是什么?

来自分类Dev

解除档最简单的方法是什么?

来自分类Dev

解除档最简单的方法是什么?

来自分类Dev

为什么最简单的补丁创建示例不起作用?

来自分类常见问题

最简单但完整的CMake示例

来自分类Dev

在本地安装Drupal的最简单方法是什么?

来自分类Dev

设置DateTime的最简单的字符串值是什么

来自分类Dev

使用Egit压缩提交的最简单方法是什么?

来自分类Dev

在nginx上启用PHP的最简单方法是什么?

来自分类Dev

创建坐标列表的最简单方法是什么?

来自分类Dev

初学者安装模块最简单的方法是什么?

来自分类Dev

始终加载Clojure库的最简单方法是什么?

来自分类Dev

更改范围滑块颜色的最简单方法是什么?

来自分类Dev

最好,最简单的OCR解决方案是什么?

来自分类Dev

在HAML中增加ID的最简单方法是什么?

来自分类Dev

消除相角不连续的最简单方法是什么

来自分类Dev

开发Firefox扩展最简单的方法是什么?

来自分类Dev

创建文件的最简单方法是什么?

来自分类Dev

在AngularJS中,最简单的声明工厂/服务的方法是什么?

来自分类Dev

从wsdl(cxf)生成代码的最简单方法是什么?

来自分类Dev

从Spark Stream写入Kafka的最简单方法是什么

来自分类Dev

从Byte []显示图像的最简单方法是什么?

来自分类Dev

从txt文件拆分列的最简单方法是什么

来自分类Dev

在Angular中制作editForm的最简单方法是什么?

来自分类Dev

计算碰撞时球的位置最简单的方法是什么?

来自分类Dev

安装PostGIS的最简单方法是什么?

来自分类Dev

在nginx上启用PHP的最简单方法是什么?

Related 相关文章

  1. 1

    带有Java配置的Spring OAuth2最简单的示例是什么?

  2. 2

    在此示例中,在tidyverse和ggplot中订购盒装图的最简单方法是什么?

  3. 3

    检查X11转发是否正常的最简单示例是什么?

  4. 4

    解除档最简单的方法是什么?

  5. 5

    解除档最简单的方法是什么?

  6. 6

    为什么最简单的补丁创建示例不起作用?

  7. 7

    最简单但完整的CMake示例

  8. 8

    在本地安装Drupal的最简单方法是什么?

  9. 9

    设置DateTime的最简单的字符串值是什么

  10. 10

    使用Egit压缩提交的最简单方法是什么?

  11. 11

    在nginx上启用PHP的最简单方法是什么?

  12. 12

    创建坐标列表的最简单方法是什么?

  13. 13

    初学者安装模块最简单的方法是什么?

  14. 14

    始终加载Clojure库的最简单方法是什么?

  15. 15

    更改范围滑块颜色的最简单方法是什么?

  16. 16

    最好,最简单的OCR解决方案是什么?

  17. 17

    在HAML中增加ID的最简单方法是什么?

  18. 18

    消除相角不连续的最简单方法是什么

  19. 19

    开发Firefox扩展最简单的方法是什么?

  20. 20

    创建文件的最简单方法是什么?

  21. 21

    在AngularJS中,最简单的声明工厂/服务的方法是什么?

  22. 22

    从wsdl(cxf)生成代码的最简单方法是什么?

  23. 23

    从Spark Stream写入Kafka的最简单方法是什么

  24. 24

    从Byte []显示图像的最简单方法是什么?

  25. 25

    从txt文件拆分列的最简单方法是什么

  26. 26

    在Angular中制作editForm的最简单方法是什么?

  27. 27

    计算碰撞时球的位置最简单的方法是什么?

  28. 28

    安装PostGIS的最简单方法是什么?

  29. 29

    在nginx上启用PHP的最简单方法是什么?

热门标签

归档