play scala 3 隐式参数和隐式域(implicit method and implicit field)

原文出处 http://alvinalexander.com/scala/scala-implicit-method-arguments-fields-example

Microsoft Windows [版本 6.1.7601]
版权所有 (c) 2009 Microsoft Corporation。保留所有权利。

C:\Users\Bo>scala
Welcome to Scala version 2.10.4 (Java HotSpot(TM) 64-Bit Server VM, Java 1.7.0_71).
Type in expressions to have them evaluated.
Type :help for more information.

scala> def yo(implicit s: String) = println("Yo, "+ s)
yo: (implicit s: String)Unit

scala> yo("Adrian")
Yo, Adrian

scala> implicit val fred = "Fred"
fred: String = Fred

scala> yo
Yo, Fred

scala> implict val one = 1
<console>:1: error: ‘;‘ expected but ‘val‘ found.
       implict val one = 1
               ^

scala> implicit val one = 1
one: Int = 1

scala> yo
Yo, Fred

scala> implicit val barney = "Barney"
barney: String = Barney

scala> yo
<console>:12: error: ambiguous implicit values:
 both value fred of type => String
 and value barney of type => String
 match expected type String
              yo
              ^

scala>

希望你能中明白,隐式参数和隐式field是怎么一起协调使用的。

时间: 2024-10-06 22:51:44

play scala 3 隐式参数和隐式域(implicit method and implicit field)的相关文章

Scala 学习笔记之隐式参数和隐式转换并用

隐式转换条件: 1. 当表达式类型与预期的类型不同时 2.当对象访问一个不存在的成员时 3.当对象调用某个方法,而该方法的参数声明与传入参数不相匹时. 隐式转换搜索范围: 1. 位于源火目标类型伴生对象中的隐式函数. 2. 位于当前作用域可以以单个标识符指代的隐式函数. 隐式参数条件: 函数中参数带有implicit 隐式参数搜索范围: 在当前作用域所有可以用单个标识符指代的满足类型要求的val和def. 与所要求类型相关联的类型的伴生对象. 隐式参数和隐式转换并用例子: class A { d

scala入门-10 隐式转换、隐式参数、隐式类

到目前为止,隐式转换是scala的重点和难点了,加油~ 我们先创建一个类名称叫Implicit.scala 再看一个隐式参数的例子: 上面的例子中使用了隐式参数,我们也可以明显的指明参数: 下面看一下隐式类: 相当于: 到目前为止,本人已经把所有scala在spark中开发中所涉及的基础知识练习了一遍了,稍后我会把scala其他方面知识在总结一下 谢谢大家抽出时间阅读

Scala中隐式参数与隐式转换的联合使用实战详解及其在Spark中的应用源码解析之Scala学习笔记-51

package com.leegh.implicits /** * @author Guohui Li */ object Implicit_Conversions_with_Implicit_Parameters { def main(args: Array[String]): Unit = { def bigger[T](a: T, b: T)(implicit ordered: T => Ordered[T]) = if (ordered(a) > b) a else b println

Spark进阶视频之Scala中隐式参数与隐式转换的联合使用实战详解及其在Spark中的应用源码解析

王家林亲授<DT大数据梦工厂>大数据实战视频"Scala深入浅出实战经典"视频.音频和PPT下载! 欢迎广大Spark爱好者学习交流.也欢迎广大学习爱好者加入DT大数据梦工厂交流群:462923555DT大数据微信公众账号:DT_Spark 视频观看链接http://www.tudou.com/plcover/Yy5F5gsurSE/ 视频下载地址百度云:http://pan.baidu.com/s/1eQGqzEa腾讯微云:http://url.cn/SshT6b

Spark进阶视频之Scala中上下文界定内幕中的隐式参数与隐式参数的实战详解及其在Spark中的应用源码解析

王家林亲授<DT大数据梦工厂>大数据实战视频"Scala深入浅出实战经典"视频.音频和PPT下载! 欢迎广大Spark爱好者学习交流.也欢迎广大学习爱好者加入DT大数据梦工厂交流群:462923555DT大数据微信公众账号:DT_Spark 视频观看链接http://www.tudou.com/plcover/Yy5F5gsurSE/ 视频下载地址百度云:http://pan.baidu.com/s/1eQGqzEa腾讯微云:http://url.cn/SshT6b

Scala入门到精通——第十九节 隐式转换与隐式参数(二)

作者:摇摆少年梦 配套视频地址:http://www.xuetuwuyou.com/course/12 本节主要内容 隐式参数中的隐式转换 函数中隐式参数使用概要 隐式转换问题梳理 1. 隐式参数中的隐式转换 前一讲中,我们提到函数中如果存在隐式参数,在使用该函数的时候如果不给定对应的参数,则编译器会自动帮我们搜索相应的隐式值,并将该隐式值作为函数的参数,这里面其实没有涉及到隐式转换,本节将演示如何利用隐式参数进行隐式转换,下面的代码给定的是一个普通的比较函数: object ImplicitP

Scala入门到精通——第十八节 隐式转换与隐式参数(一)

本节主要内容 隐式转换简介 隐式转换函数 隐式转换规则 隐式参数 1. 隐式转换简介 在scala语言当中,隐式转换是一项强大的程序语言功能,它不仅能够简化程序设计,也能够使程序具有很强的灵活性.要想更进一步地掌握scala语言,了解其隐式转换的作用与原理是很有必要的,否则很难得以应手地处理日常开发中的问题. 在scala语言中,隐式转换是无处不在的,只不过scala语言为我们隐藏了相应的细节,例如scala中的类继承层次结构中: 它们存在固有的隐式转换,不需要人工进行干预,例如Float在必要

Scala隐式参数

Scala方法可以具有隐式参数列表,由参数列表开头的implicit关键字标记.如果参数列表中的参数没有像往常一样传递,Scala将查看它是否可以获得正确类型的隐式值,如果可以,将自动传递. Scala将查找这些参数的位置分为两类: 1.Scala在调用包含有隐式参数块的方法时,将首先查找可以直接访问的隐式定义和隐式参数(无前缀). 2.在所有伴生对象中查找与隐式候选类型相关的有隐式标记的成员. 1 package big.data.analyse.scala 2 3 /** 4 * Creat

Scala 系列(十三)—— 隐式转换和隐式参数

一.隐式转换 1.1 使用隐式转换 隐式转换指的是以implicit关键字声明带有单个参数的转换函数,它将值从一种类型转换为另一种类型,以便使用之前类型所没有的功能.示例如下: // 普通人 class Person(val name: String) // 雷神 class Thor(val name: String) { // 正常情况下只有雷神才能举起雷神之锤 def hammer(): Unit = { println(name + "举起雷神之锤") } } object T