Scala 學習(2)之 函式

2021-10-01 09:55:39 字數 1445 閱讀 6624

過程lazy

異常

def 函式名(引數名 : 引數型別): 返回值型別 =
// 不宣告返回值型別的函式前提是右側函式體不包含遞迴的語句

def 函式名(引數名 : 引數型別) =

// 又或者

def 函式名(引數名 : 引數型別): unit =

def sayhello(firstname:string, middlename:string = "william", lastname:string = "croft") : string = 

// 如果給出的引數不夠,則會從左往右依次應用引數

sayhello("mick", lastname = "mike", middlename = "jack")

// 可以混合使用未命名引數和帶名引數,但是未命名引數必須排在帶名引數前面

def sum(nums : int*) =
// 冒號跟下劃線之間有空格

val s = sum(1 to 5 : _*)

def sum(nums : int*):int =
如果函式體直接包裹在了花括號裡面,而沒有使用 = 連線,則函式的返回值型別就是 unit 。這樣的函式就被稱之為過程。過程通常用於不需要返回值的函式。

def sayhello(name: string) = "hello, " + name

def sayhello(name: string)

// 過程還有一種寫法,就是將函式的返回值型別定義為 unit

def sayhello(name: string) : unit = "hello, " + name

如果將乙個變數宣告為 lazy ,則只有在第一次使用該變數時,變數對應的表示式才會發生計算。這種特性對於特別耗時的計算操作特別有用,比如開啟檔案進行磁碟 io ,進行網路 io 等。

import scala.io.source._

// mkstring代表將 bufferedsource 轉換成文字

歡迎關注,本號將持續分享本人在程式設計路上的各種見聞。

scala學習筆記之函式

函式是一組一起執行乙個任務的語句。函式的宣告 如果你不寫等於號和方法主體,那麼方法會被隱式宣告為 抽象 abstract 包含它的型別於是也是乙個抽象型別。def functionname 引數列表 return type 函式的使用 傳名函式 通過指定函式引數名,並且不需要按照順序向函式傳遞引數 ...

scala學習筆記2

package com.scala.stu import scala.collection.mutable.map import scala.io.source 第二章例子 object t 002 例子一,陣列的使用,使用的是獲取匿名函式的方法建構函式體 def t arr unit 1 1 被轉...

Scala 學習(9)之 函式式程式設計

對相同的輸入,總是能得到相同的輸出。如果 f x 的引數 x 和函式體都是引用透明的,那麼函式 f 是純函式。指的是沒有 的函式 指的是狀態的變化 修改全域性變數 丟擲異常 io 讀寫 呼叫有 的函式 我們可以清楚的看到,呼叫xplusy v2函式的時候,改變了 x 的值,產生了 生產效率高 易於推...