Scala学习之字符串篇(七):使用隐式方法来扩展字符串类
2016-12-08 00:00
316 查看
通常情况下我们会把一些共用的字符串处理方法封装到一个工具类中,比如StringUtils类。假定我们实现了一个方法increment,它接收一个字符串,然后把字符串中的每一个字符加1,然后返回新的字符串。要使用这个方法我们需要调用:StringUtils.increment(s)。
但是Scala为我们提供了一种更加灵活的方式-隐式方法,它可以直接让你以"s.incrment"的方式进行调用,就好像String类为我们提供了这个方法一样。
但是Scala为我们提供了一种更加灵活的方式-隐式方法,它可以直接让你以"s.incrment"的方式进行调用,就好像String类为我们提供了这个方法一样。
scala> implicit class StringUtils(s: String) { | def increment = s.map(c => (c + 1).toChar) | def decrement = s.map(c => (c - 1).toChar) | def hideAll = s.replaceAll(".", "*") | } defined class StringUtils scala> "HAL".increment res28: String = IBM scala> "IBM".decrement res29: String = HAL scala> "IBM".hideAll res30: String = ***
相关文章推荐
- scala 隐式转换 使File可以使用read方法
- Scala学习之字符串篇(二):使用多行字符串
- android学习记录(五)显式Intent与隐式Intent的功能与使用方法解析。
- Scala中使用implict 扩展现有类的方法
- C#编译器优化那点事 c# 如果一个对象的值为null,那么它调用扩展方法时为甚么不报错 webAPI 控制器(Controller)太多怎么办? .NET MVC项目设置包含Areas中的页面为默认启动页 (五)Net Core使用静态文件 学习ASP.NET Core Razor 编程系列八——并发处理
- C#学习笔记-索引器,指针类型,隐式类型,扩展方法,分部方法,匿名类型
- Scala中隐式参数与隐式转换的联合使用实战详解及其在Spark中的应用源码解析之Scala学习笔记-51
- Visual Studio 2017中使用正则修改部分内容 如何使用ILAsm与ILDasm修改.Net exe(dll)文件 C#学习-图解教程(1):格式化数字字符串 小程序开发之图片转Base64(C#、.Net) jquery遍历table为每一个单元格取值及赋值 。net加密解密相关方法 .net关于坐标之间一些简单操作
- 用LinQ扩展方法,泛型扩展方法,实现自定义验证字符是否空、对象是否为null,及泛型约束使用,Action的使用
- [深入学习C#]LINQ查询表达式详解(1)——基本语法、使用扩展方法和Lambda表达式简化LINQ查询
- 使用libzip读取修改zip文件comment的方法(支持添加扩展字符)
- [C#]C#学习笔记-索引器,指针类型,隐式类型,扩展方法,分部方法,匿名类型
- Scala学习之字符串篇(六):使用正则表达式
- C# 3.0新特性初步研究 Part2:使用扩展方法
- fix-ie5.js扩展在IE5下不能使用的几个方法
- NetTiers学习笔记08---Entity层的扩展和EntityDataSource的使用方法
- C#3.0 中使用扩展方法来扩展接口
- [ASP.NET学习笔记之四]数据集的使用方法和技巧
- 学习笔记---使用prototype.js扩展struts标签实现xmlhttprequest
- 用例题来学习java中Timer和timertask使用方法