scala函数的至简原则

1) 第一点就是我们之前提到的, return 可以省略 ,Scala 会使用函数体的逻辑 上的最后一行代码作为返回值

def f1( s : String ): String = {

s

}

2)如果函数体只有一行代码,可以省略花括号

def f2(s: String): String = s

(3)返回值类型如果能够推断出来,那么可以省略:和返回值类型一起省略

def f3( s : String ) = s

(4)如果有 return,则不能省略返回值类型,必须指定

def f4(): String = {

return "ximenqing4"

}

(5)如果函数明确声明 Unit ,那么即使函数体中使用 return 关键字也不起作用

6)Scala 如果 函数 没有 返回值类型,可以省略等号,将无返回值的函数称之为过程

def f6() {

"dalang6"

}

(7)如果函数无参 ,但是声明了参数列表,那么调用时,小括号可加可不加

def f7() = "dalang7"

f7

8)如果函数没有参数列表,那么小括号可以省略, 调用时小括号必须省略

def f8 = "dalang"

println(f8)

相关推荐
变与不变80614 小时前
引用类型、内存原理与对象
开发语言·前端·javascript
wuyk55514 小时前
从零吃透 MQTT 通信|第 5 章 MQTT 心跳保活机制深度优化,断线检测与智能自动重连
c语言·开发语言·stm32·学习
weixin_4407305014 小时前
socket解决多次输入问题-大数据接收问题-模块动态导入
java·开发语言·servlet
励志不掉头发的内向程序员15 小时前
【LibreCAD 2D架构】从鼠标点击到图形创建:RS_ActionDrawLine交互流程与状态机解析
开发语言·c++·qt·学习·系统架构·计算机外设·交互
www_aiyuanma_vip15 小时前
Java个人博客系统
java·开发语言
leoZ23115 小时前
第 7 篇:进阶——校验、联动、列表页
开发语言·前端·javascript·vue.js·人工智能·目标检测·ecmascript
luj_176815 小时前
虚实交融中的真实人物塑造
c语言·开发语言·网络·经验分享·算法
haolin123.16 小时前
STL vector底层揭秘:从构造到迭代器失效
开发语言·c++·算法
大模型码小白16 小时前
ChatGPT 的回答也能被结构化抓取?AI Bot Scraper 对比测评
服务器·开发语言·数据库·人工智能·spring·chatgpt
尘中远16 小时前
给C++工业软件搭建 Agent
开发语言·c++·qt·ai·agent