首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Scala基础入门(九)Scala 方法中缀表示法、后缀表示法

Scala基础入门(九)Scala 方法中缀表示法、后缀表示法

作者头像
青山师
发布2023-05-04 21:32:48
发布2023-05-04 21:32:48
6720
举报

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参调用示例应用:

代码语言:javascript
复制
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 有一种特殊的方法调用只有一个参数的方法。

代码语言:javascript
复制
// 推荐使用
a + b

// 有效,但是可读性不好
a+b

// 有效, 但是给人感觉很奇怪
a.+(b)

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

代码语言:javascript
复制
// 推荐使用
names.mkString(",")

// 有时候也会看到使用; 但是有争议
names mkString ","

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

代码语言:javascript
复制
// 比较常见
a max b

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

代码语言:javascript
复制
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();就是后缀表示法。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017-08-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Scala 方法调用
  • 0参调用
  • 中缀表示法 Infix notation
  • 后缀表示法 Postfix Notation
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档