package Scala12_5
//隐式转换的作用是什么?
//编译器自动滴,偷偷滴,把数据类型从A ——>B
//有可能会成功,也有可能失败
//implicit:隐式转换
object Scala12_05 {
// def main(args: Array[String]): Unit = {
//val i : Int = 1
把Int类型,转成Double类型
// val b:Double = i
//
//
// val d:Double = 1.2
// val j:Int = d
//
// }
// def getAge(): Double = {
// 19.5
// }
//
// def main(args: Array[String]): Unit = {
implicit 隐式转换
函数名字不重要
重要的是,参数类型和返回值类型
隐式函数:implicit修饰的函数
特点:1 自动被调用 2 函数名字不重要,重要的是,参数类型和返回值类型
// implicit def abs(d: Double): Int = {
// d.toInt
// }
//
// val i: Int = getAge()
// println(i)
// }
// 隐式值
// 函数的默认参数
// 函数的默认值:小花
// def sayName(implicit name: String = "小花"): Unit = {
// println(s"我叫:$name")
// }
// // 需求:更改函数参数的默认值(不传入这个值的时候,用到的值),不要写死
// // 步骤:
// // 1.定义函数的默认参数时,添加implicit
// // 2.需要修改这个默认值时,定义一个同类型的 隐式值: implicit修饰变量
implicit val xx:String = "小明明"
//
// def main(args: Array[String]): Unit = {
// sayName("小小")
// sayName
// sayName
//
// }
//开始你的代码....
implicit class StrongString(val str: String) {
def isPhone(): Boolean = {
val reg = "1[3-9]\\d{9}".r
reg.matches(str)
}
//验证是否身份证号
def isID: Boolean = {
val reg = "".r
reg.matches(str)
}
}
// 定义一个特殊的转换函数,把str====》StrongString 的对象
// implicit def xxxx(str: String): StrongString = {
// new StrongString(str)
// }
//
// def main(args: Array[String]): Unit = {
// val str:String = "13612345678"
// val str =
// println("136a".isPhone()) //==>False
// }
//
}
在SCala中隐式转换的理解与应用
小萌新~~~~2024-12-14 18:29
相关推荐
代码羊羊6 小时前
Rust 迭代器完全通俗易懂指南(零基础全覆盖)MY_TEUCK13 小时前
【Java 后端】SpringBoot 登录认证与会话跟踪实战(JWT + Filter/Interceptor)QQ24221997913 小时前
基于python+微信小程序的家教管理系统_mh3j9沐知全栈开发14 小时前
JavaScript 条件语句RSTJ_162514 小时前
PYTHON+AI LLM DAY THREETY-SEVEN清水白石00814 小时前
《Python性能深潜:从对象分配开销到“小对象风暴”的破解之道(含实战与最佳实践)》Je1lyfish14 小时前
CMU15-445 (2025 Fall/2026 Spring) Project#3 - QueryExecutionBrilliantwxx14 小时前
【C++】 vector(代码实现+坑点讲解)野生技术架构师14 小时前
2026年最全Java面试题及答案汇总(建议收藏,面试前看这篇就够了)程序员飞哥14 小时前
重构 AI 思维(一):Prompt Engineering,如何下达不可违抗的指令?