網站首頁 編程語言 正文
常規函數
object Demo {
def main(args: Array[String]) {
println( "Returned Value : " + addInt(5,7) ); // 普通調用
println( "Returned Value : " + addInt(a=5,b=7) ); // 指定參數調用
}
// 方法 默認參數 b = 7
def addInt( a:Int, b:Int = 7 ) : Int = {
var sum:Int = 0
sum = a + b
return sum
}
}
可變參數函數
object Demo {
def main(args: Array[String]) {
printStrings("Hello", "Scala", "Python"); // 可變參數
}
def printStrings( args:String* ) = {
var i : Int = 0;
for( arg <- args ){
println("Arg value[" + i + "] = " + arg );
i = i + 1;
}
}
}
使用名字調用函數
apply()函數接受另一個函數f和值v,并將函數f應用于v。
object Demo {
def main(args: Array[String]) {
println( apply( layout, 10) )
}
def apply(f: Int => String, v: Int) = f(v)
def layout[A](x: A) = "[" + x.toString() + "]"
}
// $ scalac Demo.scala
// $ scala Demo
匿名函數
Scala支持一級函數,函數可以用函數文字語法表達,即(x:Int)=> x + 1,該函數可以由一個叫作函數值的對象來表示。 嘗試以下表達式,它為整數創建一個后繼函數 -
var inc = (x:Int) => x+1
變量inc現在是一種可以像函數那樣使用的函數 - var x = inc(7)-1
還可以如下定義具有多個參數的函數:
var mul = (x: Int, y: Int) => x*y
變量mul現在是可以像函數那樣使用的函數 - println(mul(3, 4))
也可以定義不帶參數的函數,如下所示:
var userDir = () => { System.getProperty("user.dir") }
變量userDir現在是可以像函數那樣使用的函數 - println( userDir )
訪問修飾符
class Outer {
class Inner {
private def f1() { println("f") }
protected def f2() { println("f") }
def f3() { println("f") }
# 保護作用域Scala中的訪問修飾符可以通過限定符進行擴充。形式為private [X]或protected [X]的修飾符表示為訪問是私有或受保護的“最多”到X,其中X指定一些封閉的包,類或單例對象。
private[professional] var workDetails = null
private[society] var friends = null
private[this] var secrets = null
class InnerMost {
f() // OK
}
}
(new Inner).f() // Error: f is not accessible
}
原文鏈接:https://juejin.cn/post/7127307229371301918
相關推薦
- 2021-12-06 C語言PlaySound函數使用方法_C 語言
- 2022-07-18 linux引導和服務過程
- 2022-07-28 numpy?array找出符合條件的數并賦值的示例代碼_python
- 2022-08-28 glibc編譯時報錯:configure: error:*** LD_LIBRARY_PATH sh
- 2022-08-02 Python深拷貝淺拷貝圖文示例清晰整理_python
- 2022-05-21 C#對DataTable中的某列進行分組_C#教程
- 2022-06-29 基于C++實現五子棋小游戲_C 語言
- 2022-06-21 C#實現Array,List,Dictionary相互轉換_C#教程
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支