精华内容
下载资源
问答
  • scala中缀与后缀

    2020-02-08 22:29:35
    scala中缀与后缀1. 中缀2. 后缀 git地址 https://github.com/a18792721831/studyScala.git 1. 中缀 什么是中缀? 中缀就是形如 a + b的表达式 就是中缀表达式 中缀表达式两边是参数,中间是操作。 在编程语言中,...

    scala中缀与后缀


    git地址
    https://github.com/a18792721831/studyScala.git

    1. 中缀

    什么是中缀?
    中缀就是形如 a + b的表达式
    就是中缀表达式
    中缀表达式两边是参数,中间是操作。
    在编程语言中,基本类型支持所有的中缀表达式。
    比如在Java中,可以写 1+2就是中缀表达。
    当然,在Java中,除了基本类型,还有包装类型,得益于自动拆箱和自动装箱,包装类也可以写中缀表达式。
    但是,作为普通的类就没有这样好的待遇了。

    在scala中,因为在调用方法时,可以有限的省略点。
    所以,scala可以实现普通类的中缀表达式。
    举个例子:

    class Middle(v: Int){
      val add = (x: Middle) => this.v + x.getV
    }
    

    我们创建了一个普通的Java类,有一个add函数。
    同时有一个int的属性。
    add函数有一参数,其类型是其本身,实现的操作是将调用本身的属性值与参数的属性值进行相加,然后返回。
    在Java中,我们只能如下调用
    对象.方法(参数)
    不过,在scala中,可以用中缀表达式进行调用。
    我们写这个类的伴生对象,然后在伴生对象中写main方法进行调用。

    object Middle{
    
      def apply(x: Int) = new Middle(x)
    
      def main(args: Array[String]): Unit = {
        val xs = Middle(3)
        val xsw = Middle(4)
        println(xs add xsw)
        println(xs.add(xsw))
        println(Middle(8) add Middle(10))
        println(Middle(8).add(Middle(10)))
      }
    }
    

    在伴生类中,定义了apply方法,使得我们可以像调用无参方法一样得到类的对象。
    然后我们可以用中缀表达式进行调用
    其输出结果如下
    在这里插入图片描述

    2. 后缀

    除了中缀表达式,还有后缀表达式
    后缀表达式比较常见的写法形如取反等等
    !true就是后缀表达式。
    当然这个解释可能不太正确。
    不过,在scala中后缀主要是表达一个方法调用的方式。
    对于无参方法的调用,可以省略点
    最终的结果就像shell命令一样。
    对象 操作
    举个例子
    我们在1中的类中增加一个无参的方法

    def getV = this.v
    

    然后在伴生类中调用。

        println(Middle(19) getV)
        println(Middle(19).getV)
    

    当然,要用后缀表达式进行调用无参方法,还需要导入一个scala实现的包
    import scala.language.postfixOps
    如果不导入这个包,编译会报错

    Error:(19, 24) postfix operator getV needs to be enabled
    by making the implicit value scala.language.postfixOps visible.
    ----
    This can be achieved by adding the import clause 'import scala.language.postfixOps'
    or by setting the compiler option -language:postfixOps.
    See the Scaladoc for value scala.language.postfixOps for a discussion
    why the feature needs to be explicitly enabled.
        println(Middle(19) getV)
    

    其执行结果如下
    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • Scala 编程规范中,有一些很有意思的规则。合理地使用这些规则,可以帮助我们编写更简洁更有效的代码。Scala 方法调用一般来说,Scala中的方法调用遵循Java惯例。换句话说在目标方法和点符(.)之间是没有任何间隙的,...

    Scala 编程规范中,有一些很有意思的规则。合理地使用这些规则,可以帮助我们编写更简洁更有效的代码。

    Scala 方法调用

    一般来说,Scala中的方法调用遵循Java惯例。换句话说在目标方法和点符(.)之间是没有任何间隙的,并且最好遵循参数之间用逗号隔开,后面的参数与前面参数后面的逗号应该存在一个空格。调用target的foo方法示例如下:

    foo(42, bar)
    target.foo(42, bar)
    target.foo()

    在 Scala 2.8 版本中,开始支持命名参数。方法调用中命名的参数应该作为常规参数处理(相应的间距,以逗号为间隔),在等号的两边各有一个空格。形如:

    foo(x = 6, y = 7)

    0参调用

    Scala 允许省略圆括号 () 调用无参方法。

    reply()


    // is the same as


    reply

    0参调用示例应用:

    package com.byron4j.scala.basic.method
    
    object InfixDemo {
      def main(args: Array[String]): Unit = {
    
    
        /**
         * 无参方法调用: 可以省略圆括号 START...
         */
        reply();
    
        reply;
         /**
         * 无参方法调用: 可以省略圆括号 END
         */
    
    
    
    
      }
    
    
      def reply() : Unit = {
        println("无参方法被调用!");
      }
    
    }

    输出结果为:

    无参方法被调用!
    无参方法被调用!

    中缀表示法 Infix notation

    Scala 有一种特殊的方法调用只有一个参数的方法。

    // 推荐使用
    a + b
    
    // 有效,但是可读性不好
    a+b
    
    // 有效, 但是给人感觉很奇怪
    a.+(b)

    但要避免使用几乎所有字母命名的方法:

    // 推荐使用
    names.mkString(",")
    
    // 有时候也会看到使用; 但是有争议
    names mkString ","

    但是在灰色区域像 max 这样的短方法,以下使用方法还是很常见的:

    // 比较常见
    a max b

    hello方法是一个只有一个参数的方法, 可以使用中缀表示法调用hello方法。

    package com.byron4j.scala.basic.method
    
    object InfixDemo {
      def main(args: Array[String]): Unit = {
    
    
        /**
         * 无参方法调用: 可以省略圆括号 START...
         */
        reply();
    
        reply;
         /**
         * 无参方法调用: 可以省略圆括号 END
         */
    
    
    
        /**
         * 中缀表示法 调用只含一个参数的方法
         * 语法: 调用方 方法名 方法参数
         */
        InfixDemo hello "Lily";
    
    
      }
    
    
      def reply() : Unit = {
        println("无参方法被调用!");
      }
    
      def hello(name: String) : Unit = {
        println("Hello, " + name);
      }
    
    }

    后缀表示法 Postfix Notation

    后缀表示法适用于调用无参方法。前面的 reply 等同于 reply();就是后缀表示法。

    展开全文
  • 无法新建scala文件

    2019-10-27 13:56:14
    首先添加scala插件, 若是仍然无法新建scala文件 可以在外面新建一个文件后缀改为scala。然后拷贝到IDEAl里 他会提示没有安装SDK,右上角提示setup SCALA sdk 点击以后,就会自动找到并激活。 ...

    首先添加scala插件,
    若是仍然无法新建scala文件
    可以在外面新建一个文件,后缀改为scala。然后拷贝到IDEAl里
    他会提示没有安装SDK,右上角提示setup SCALA sdk
    点击以后,就会自动找到并激活。

    展开全文
  • def getFile(file:File): Array[File] ={ val files = file.listFiles().filter(! _.isDirectory) ... t.toString.endsWith(".txt") || t.toString.endsWith(".md")) //此处读取.txt and .md文件 fi...
    
    def getFile(file:File): Array[File] ={
    val files = file.listFiles().filter(! _.isDirectory)
        .filter(t => t.toString.endsWith(".txt") || t.toString.endsWith(".md"))  //此处读取.txt and .md文件
        files ++ file.listFiles().filter(_.isDirectory).flatMap(getFile)
    }
    
    val path = new File("G:\\lzp_personal_data\\study_data\\itNote")
    getFile(path).foreach(println)

    转载于:https://www.cnblogs.com/fly2wind/p/7912285.html

    展开全文
  • spark读取hdfs中文件的时候,.tmp文件不是我们需要的,需要进行过滤 import org.apache.hadoop.fs.{Path, PathFilter} /** * filter temp files in hdfs dirs * eg: 1234556.tmp */ class FilterTmpPath ...
  • 1 读取行 import scala.io.Source object FileSyllabus { def main(args: Array[String]): Unit = ... //文件读取 val file1 = Source.fromFile("C:\\Users\\61661\\Desktop\\scala笔记....
  • * args(1)第二个参数设置:输出文件的路劲以及文件名(注意文件名称的后缀名在程序中进行设置,默认为: .txt文件后缀名,若要更改请在程序代码中进行更改) * args(2)第三个参数设置:拆分成小文件的总的个数 *...
  • Scala

    2020-10-28 17:12:40
    Scala是一种纯面向对象的语言,每个值都是对象。对象的数据类型以及行为由类和特质描述。 类抽象机制的扩展有两种途径:一种途径是子类继承,另一种途径是灵活的混入机制。这两种途径能避免多重继承的种种问题。 (2...
  • scala

    2019-11-12 09:58:38
    一、下载安装 官网:https://www.scala-lang.org 1,下载 找到要下载的版本,window安装,下载...命令行窗口:输入scala 即为安装成功。 二、测试练习 第一个scala程序 交互式编程 1,scala> 1+1 结...
  • 后缀properties是一种属性文件,这种文件以key=value格式存储内容,Java中可以使用Properties类来读取这个文件: String value=p.getProperty(key); 就能得到对应的数据,一般这个文件作为一些参数的存储,代码就...
  • 测试代码如下:   结论:packages文件需要用scalac文件编译;而导入包的文件也需要用scalac编译,然后再调用scala 文件名(不含后缀) 
  • Scala 文件和目录操作并解决编码问题
  • 这是因为java与scala是二种不同的语言,有各自的sdk和编译器,所以需要专门的maven插件来处理scala的编译。 2. 解决方案 在pom.xml文件中添加如下内容 插件使用,请参阅:...
  • scala学习

    2016-11-18 11:32:00
    Scala是什么Scala是基于JVM的编程语言。...Scala是运行在jvm上的编程语言,scala源代码通过jvm被编译成class文件,然后在os上运行class文件。 声明值和变量var a = 12 //定义变量 val b = 23 //...
  • 文件后缀名大全

    万次阅读 2013-07-06 14:18:17
    .??_ Files ending in "_" are often compressed install files of the same  name (e.g., .EX_ expands to .EXE, .DL_ expands to .DLL, etc.) .A UNIX Library [UNIX]  ADA Program .A01 ARJ Multi-volu
  • 一、Scala 异常处理 Scala 的异常处理类似与其他语言 Scala 的方法可以通过抛出异常的方法的方式来终止相关代码的运行,不必通过返回值。 抛出异常 scala使用throw方法抛出异常,eg:抛出一个新的参数异常---&...
  • ** Scala的使用方法和执行scala程序的3种方法 ** 进入scala的方法:1 cd scala安装路径 2 ./bin/scala ...1.编写scala脚本文件后缀名为 .scala 2.使用scalac命令进行编译: [user@nn1 ~]$ scalac 文件名.scala
  • 初识Scala

    2017-10-24 20:08:46
    都需要编译成.class文件来执行,所以java的class文件scala是可以直接引用。2、scala基础概念与书写注意事项2.1 scala基础概念**对象** - 对象有属性和行为。例如:一只狗的状属性有:颜色,名字,行为有:叫、跑、吃...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,943
精华内容 1,177
关键字:

文件后缀是scala