3 August 2022
scala 2.12 PreDef 源码阅读记录
-
classOf[T] :
stub method
-
区别 在于
type Map[A, +B] = immutable.Map[A, B] //refer class or trait of Map val Map = immutable.Map // refer to object of Map
-
作用是
type Manifest[T] = scala.reflect.Manifest[T]
-
require ,assert,assume 都有相同的的两种实现 有什么区别
def require(requirement: Boolean) @inline final def require(requirement: Boolean, message: => Any)
-
??? 抛出
NotImplementedError
可以在开发阶段作为未完成方法的占位符 -
` implicit final class ArrowAssocA extends AnyVal` 提供 隐式方法 -> : a->b ==(a,b)==Tuple2(a,b) inline -> 和->有何区别 为什么 impiclt 构造器成员 self需要私有?
-
implicit final class Ensuring[A](private val self: A) extends AnyVal
为所有AnyVal
提供断言
self Type
class A
class B extends A // B is an A
class S {self:A=>} // S request A
String Interpolation
(字符串插值)
raw"\\r\n"
f"%{Math.Pi}%.5f"
s"my name is ${name}"
//rewriting code at compile time
// 实现方式
// 创建一个StringContext的隐式转换类
implicit class StringToColumn(val sc: StringContext) // spark 源码中有
$("col_a")== new StringToColumn()