美文网首页
Scala 方法的中缀表示法、后缀表示法

Scala 方法的中缀表示法、后缀表示法

作者: 锕456 | 来源:发表于2017-09-15 20:09 被阅读57次

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 方法的中缀表示法、后缀表示法

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

  • 表达式转换

    算术表达式有前缀表示法、中缀表示法和后缀表示法等形式。日常使用的算术表达式是采用中缀表示法,即二元运算符位于两个运...

  • 后缀(逆波兰)表示法

    后缀表示法是对栈的典型应用,所谓后缀表示法就是将我们平时所用的四则运算表达式(中缀表示法)以不需要括号,表示成计算...

  • 后缀表示法

    ——函数式编程使用的也是后缀表示法 机械计算器的输入方式与普通的计算器不同,它是后缀表达式输入。例如3+2的后缀表...

  • 2017/3/13 周一

    GET 栈1.顺序栈/链式栈2.栈的递归用法3.栈的四则运算表达式求值(中缀表示法、后缀表示法)4.Java用St...

  • Kotlin中的函数

    中缀表示法 暂时还体会不到infix的妙处!? 函数还可以用中缀表示法调用,当他们是成员函数或扩展函数,只有一个参...

  • Kotlin 区间 原理

    直接上代码, 我们以下面的例子说明 其中 infix 表示中缀表示法, operator 表示 重载操作符的函数

  • 7.19-经典难问题总结

    1. 前缀,后缀和中缀之间相互转换 中缀表示转前缀/后缀(附代码)针对负数的情况前缀/中缀/后缀相互转换 2. T...

  • SMILES & InChI | 化学结构的线性表示法

    SMILES表示法、SMARTS表示法和InChI表示法都是用少量字符表示结构信息的重要方法。 化合物的图表示 可...

  • 波兰法与逆波兰法

    身为初学者,能力有限,知识尚少,如有纰漏,还望海涵。   对于表达式,通常有三种表示方法,前、中、后缀表示法。我们...

网友评论

      本文标题:Scala 方法的中缀表示法、后缀表示法

      本文链接:https://www.haomeiwen.com/subject/avsesxtx.html