首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Scala学习笔记

    ,表达方式,上界为例 <%         1)可以接收以下类型             (1)上界和下界的类型             (2)允许通过隐式转换过去的类型(定义一个隐式转换函数)...,也可以是能够转换成String的其他类             调用:报错,没有找到隐式转换规则吧int转换成String类型             scala> def addTwoString...String类型                 (2)在当前的会话中查找有没有一个隐式转换函数,满足Int可以转换成String类型                 (3)如果找到了,先调用这个隐式转换函数...addTwoString(1234, "dd")                                    ^                 #定义一个any类型转换为String类型的隐式转换函数...    (*)隐式参数         核心:隐式转换             参考ImplicitParam代码     (*)隐式类             在类前面加个implicit关键字

    2.6K40

    Scala中的Collection

    ] = List(1, 2, 3, 4, x, y, z) //自动推导为Int,String的父类为Any scala> a.head...: Int = 10 //初值改变后的结果 scala> a.foldLeft(1)(_+_) res36: Int = 11 惰性求值的类型:Stream 流 //使用to或until来获取range...: (Int, Int) = (1,2) //只有两个元素的元组叫pair,可以使用箭头的方式来定义 scala> 1 -> 2 res52: (Int, Int) = (1,2) //scala自动识别元素类型...,String] = Map(1 -> Tom, 9 -> Jack) 函数式编程示例:快速排序 def qSort(a:List[Int]):List[Int] = { if(a.length <...List元素不足2,那么表示无序调整,排序结束 注意: 这里外层递归中含有两个递归,外层递归即函数的返回的是三部分之和,这并不是尾递归 这个例子是综合了函数式编程、高阶函数、递归等Scala编程思想的体现

    1.2K70

    scala 学习笔记

    在平常的代码中是不可以的。 基础数据类型 Scala中基础数据类型有:Byte、Short、Int、Long、Float、Double,Boolean,Char、String。...和Java不同的是,Scala中没在区分原生类型和装箱类型,如:int和Integer。它统一抽象成Int类型,这样在Scala中所有类型都是对象了。...注:Scala是函数式语言,函数式语言还有一大特性就是:表达式。函数式语言中所有语句都是基于“表达式”的,而“表达式”的一个特性就是它会有一个值。所有像Java中的?...= () scala> val unit2 = if (true) "真" unit2: Any = 真 可以看到,if语句也是有返回值的,将表达式的结果赋给变量,编译器也能正常推导出变量的类型。...unit和unit2变量的类型是Any,这是因为else语句的缺失,Scala编译器就按最大化类型来推导,而Any类型是Scala中的根类型。

    56420

    Spark基础-scala学习(一、入门)

    = null 声明变量类型 val name: Any = "leo" val name1,name2:String = null 声明多个变量 val num1,num2=100 数据类型与操作符...基本数据类型:Byte、Char、Short、Int、Long、Float、Double、Boolean scala没有基本数据类型与包装类型的概念,统一都是类 使用以上类型,直接就恶意调用大量的函数,...例如,1.toString(),1.to(10) 在scala中,操作符比如+-*/%&|^>>类型的函数,比如1+1可以写作1.+(1);例如1.to(10) 又可以写作1 to 10...8 存在返回值 if(age > 18) "adult" else 0 当返回值类型不同,会取公共父类型Any 输入输出 val name = readLine("Welcome to House")...: scala.collection.immutable.Map[String,Int] = Map(jike -> 34) scala> aggs res12: scala.collection.immutable.Map

    71030

    Scala基础——Map(映射)

    Map Scala映射(Map)是一组键/值对的对象。键在映射中是唯一的,但值不一定是唯一的。映射也称为哈希表。映射有两种,不可变的和可变的。默认情况下,Scala使用不可变映射(Map)。...scala.collection.mutable.Map类 val map = Map("name" -> "xiaoming","age" ->20) println(map("name")) 声明空的映射是...,不能省略类型说明,向映射(Map)添加一个键值对,可以使用运算符+ var m :Map[String,Int]= Map() m += ("one"->1) 判断map中是否包含某个值,...println(map("age")) } 如果需要创建可变映射,需要引入scala.collection.mutable.Map包,否则value update is not a member of scala.collection.immutable.Map...[String,Any] map("gender") = "cumputer" val map = Map("name" -> "xiaoming","age" ->20) map(

    41630

    Scala之隐式转换「建议收藏」

    隐式转换有四种常见的使用场景: 将某一类型转换成预期类型 类型增强与扩展 模拟新的语法 类型类 语法 隐式转换有新旧两种定义方法,旧的定义方法指是的“implict def”形式,这是Scala 2.10...前文提到,隐式转换最为基本的使用场景是:将某一类型转换成预期类型,所以我们下面的例子就以最这种最简单的场景来演示,它们都实现了:将一个String类型的变量隐式转换为Int类型: “implict def...前文的代码就是这样这一场景的一个示例。 类型增强与扩展 真正让隐式转换大放异彩的是“类型增强”。这方面的示例是非常多的。...Scala.Predef 自动引入到当前作用域,在这个对象中,同时定义了一个从类型 Any 到 ArrowAssoc 的隐含转换。...类型类 类型类是一种非常灵活的设计模式,可以把类型的定义和行为进行分离,让扩展类行为变得非常方便。

    81550

    Android面试题之Kotlin 扩展函数和apply函数详解

    ,扩展就是增加类功能的最好选择 和定义一般函数差不多,但需要指定接收功能扩展的接受者类型 默认是public,整个工程有效,若需要只在当前文件有效,可以定义为private 扩展函数里自带了接收者对象的...this隐式调用 //给字符串追加若干个感叹号 fun String.addExt(amount:Int = 1) = this + "!"....repeat(amount) //在超类上定义扩展函数,Any的所有子类都能使用该函数 fun Any.easyPrint() = println(this) class TeBot() fun main...新的泛型扩展函数不仅可以支持任何类型的接受者,还保留了接收者的类型信息 //泛型扩展函数 fun T.easyPrint2():T{ println(this) return...,在T上扩展了一个匿名函数, // 之所以要传扩展函数是因为扩展函数内部包括隐式调用,有this //匿名函数也可以是扩展函数,下面的匿名函数的内部this指向一个File对象 //File.() ->

    15310
    领券