Scala自定义隐式转换

一、编写隐式转换类

/**
* Author Mr. Guo
* Create 2019/4/20 - 17:40
*/
object StringImprovments { implicit class StringImprove(s: String) {
def increment = s.toString.map(c => (c + 1).toChar)
} implicit class Intc(i: Int) {
def xx = {
Integer.parseInt(i.toString) + 4
}
} implicit class arrStrToArrInt(arr: Array[String]) {
def toArrInt = {
arr.map(arr => arr.toInt)
}
} implicit class arrStrToArrDouble(arr: Array[String]) {
def toArrDouble: Array[Double] = {
arr.map(ar => {
try {
ar.toDouble
} catch {
case x: Exception => 0.0
}
})
}
}
}

二、隐式函数的调用

/**
* Author Mr. Guo
* Create 2019/4/20 - 16:44
*/
object OperatorStr { def operatorStr() = {
import unitlOne.StringImprovments._
val str2 = "HCL"
val int1 = 3
val arrs = Array[String]("")
println(str2.increment)
println(int1.xx)
}
}

  

scala自定义隐式转换的更多相关文章

  1. Scala学习——隐式转换

    scala隐式转换 一.需求:为一个类添加一个新的方法 java:动态代理 scala:隐式转换 隐式转换例子: 1.man to superMan package top.ruandb.scala. ...

  2. C#中的类型转换-自定义隐式转换和显式转换

    目录 前言 基础知识 示例代码 实际应用 问题 答案 报错 用户定义的转换必须是转换成封闭类型,或者从封闭类型转换 参考 其他 应用和设计 读音 参考 前言 有时我们会遇到这么一种情况:在json数据 ...

  3. 使用自定义隐式转换快速创建失败Result

    系统要求方法都返回 Result 结果,通常我们会如此定义一个 Result 1 public class Result<T> 2 { 3 public virtual int Code ...

  4. 深入理解Scala的隐式转换系统

    摘要: 通过隐式转换,程序员可以在编写Scala程序时故意漏掉一些信息,让编译器去尝试在编译期间自动推导出这些信息来,这种特性可以极大的减少代码量,忽略那些冗长,过于细节的代码.   使用方式: 1. ...

  5. 转载:深入理解Scala的隐式转换系统

    摘要: 通过隐式转换,程序员可以在编写Scala程序时故意漏掉一些信息,让编译器去尝试在编译期间自动推导出这些信息来,这种特性可以极大的减少代码量,忽略那些冗长,过于细节的代码.   使用方式: 1. ...

  6. 深入理解Scala的隐式转换

    摘要: 通过隐式转换,程序员可以在编写Scala程序时故意漏掉一些信息,让编译器去尝试在编译期间自动推导出这些信息来,这种特性可以极大的减少代码量,忽略那些冗长,过于细节的代码.   使用方式: 1. ...

  7. scala的隐式转换

    摘要: 通过隐式转换,程序员可以在编写Scala程序时故意漏掉一些信息,让编译器去尝试在编译期间自动推导出这些信息来,这种特性可以极大的减少代码量,忽略那些冗长,过于细节的代码.   使用方式: 1. ...

  8. F#中的自定义隐式转换

    我们知道隐式变换在可控情况下会使代码变得简洁.熟悉C#的都知道C#中可以自定义隐式变换,例如 public class A { private int data; public static impl ...

  9. Scala模式匹配| 隐式转换

    1. 模式匹配 Scala中的模式匹配类似于Java中的switch语法,但是更加强大.模式匹配语法中,采用match关键字声明,每个分支采用case关键字进行声明,当需要匹配时,会从第一个case分 ...

随机推荐

  1. 2019-5-21-win10-uwp-url-encode

    title author date CreateTime categories win10 uwp url encode lindexi 2019-5-21 9:54:7 +0800 2018-2-1 ...

  2. 使用Gradle发布项目到JCenter仓库 (转载)

    原文:使用Gradle发布项目到JCenter仓库 这篇文章介绍通过Gradle把开源项目发布到公共仓库JCenter中,方便你我他的事情,我们都是很懒的嘛.JCenter现在是Android Stu ...

  3. isPrototypeOf,hasOwnProperty

    在看jquery源码的过程中,了解到isPrototypeOf属性.此属性只是Object.prototype的自有属性,即: Object.prototype.hasOwnProperty('isP ...

  4. react-native run-android出现红屏错误

    react-native run-android出现 unable to load script from assets 'index.android.bundle'.Make sure your b ...

  5. promise、async、await、settimeout异步原理与执行顺序

    一道经典的前端笔试题,你能一眼写出他们的执行结果吗? async function async1() { console.log("async1 start"); await as ...

  6. 理解First-Class Functions

    def logger(msg): def log_message(): print('Log:', msg) return log_message # 返回的是函数 log_hi = logger(' ...

  7. 关于C#的随机数

    一直都知道random随机数可能出现相同的情况,但是一直没具体看为什么,网上一看又是一大堆例子给你出来,一点也不清晰,今天看msdn记录一下,msdn是讲的真的清楚. 实例化随机数生成器 通过向Ran ...

  8. 【架构】spring framework核心框架体系结构

    Spring官方文档,用的版本为4.3.11版本. 一.引用官方文档 2.2.1核心集装箱 所述核心容器由以下部分组成spring-core, spring-beans,spring-context, ...

  9. 线段树求后继+环——cf1237D

    /* 首先开三倍消环(两倍是不够的),倒序求值,线段树找一下后继即可 */ #include<bits/stdc++.h> using namespace std; #define N 3 ...

  10. 杂项:SVN -u

    ylbtech-杂项:SVN 1.返回顶部   2.返回顶部   3.返回顶部   4.返回顶部   5.返回顶部     6.返回顶部   7.返回顶部   8.返回顶部   9.返回顶部   10 ...