在Scala中绑定println等函数在哪里?

 结婚吧结婚吧结婚吧_813 发布于 2023-02-06 10:39

我正在学习scala,我看到很多例子在课堂上使用printprintln使用.我注意到Console println "Hello"会打印,但println "Hello"不会expected but string literal found.,但是println("Hello")会说,但是会起作用.

据我所知,一切都是Scala中对象/类的函数,在我的第一个例子中我调用printlnConsole对象,但在第二个场景中我需要括号,为什么?

1 个回答
  • println("Hello")手段Predef.println("Hello").

    Predef默认情况下导入所有成员.

    在scala中,您可以导入对象的成员.

    你可以这样调用方法println:Predef println "Hello".对于具有单个参数的方法,您可以删除点和括号.它被称为operator notation.但在这种情况下,您必须指定目标对象(Predef)和参数.

    也可以看看:

    PREDEF

    Scala语言规范 9.1编译单元:

    隐式导入每个编译单元的顺序是:包java.lang,包scala和对象scala.Predef

    Scala编程,第一版.4.4 Scala应用程序:

    斯卡拉隐含进口包的成员java.langscala,还有一个名为单对象的成员Predef,到每个Scala的源文件.Predef,它位于包中scala,包含许多有用的方法.例如,当你说println在Scala的源文件,你实际上调用printlnPredef.(Predef.println转身并调用Console.println,这是真正的工作.)当你说assert,你在调用Predef.assert.

    运算符表示法

    Scala编程,第一版.5.3运算符是方法:

    任何方法都可以是运算符

    在Scala中,运算符不是特殊语言语法:任何方法都可以是运算符.使方法成为操作符的方法就是如何使用它.当你写" s.indexOf('o')"时,indexOf不是运营商.但是当你写" s indexOf 'o'"时,indexOf是一个运算符,因为你在运算符表示法中使用它.

    2023-02-06 10:41 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有