原文:scala學習手記20 - 方法返回類型推斷

除了推演變量的類型,scala也會推演方法的返回類型。不過這里有一處需要注意:方法返回類型的推演依賴於方法的定義方式。如果用等號 定義方法,scala就會推演方法返回類型 否則,它就認為方法的返回為void。看一個例子: 其中方法一是按照習慣方式定義的,方法二則是使用等號定義的。兩個方法都很簡單,二者唯一的差別就是定義時有沒有使用等號。這一點差別決定了scala是否會對方法的返回類型進行推演。看一 ...

2016-06-25 23:52 0 1992 推薦指數:

查看詳情

scala學習手記16 – scala中的static

前面兩節學了scala的對象和伴生對象,這兩個在使用的時候很有些java的靜態成員的意思。 scala中沒有靜態字段和靜態方法。靜態成員會破壞scala所支持的完整的面向對象模型。不過可以通過伴生對象實現對scala的類一級的操作。 回過頭來再看一遍那個Marker的例子,略做了一些調整 ...

Tue Jun 21 06:35:00 CST 2016 0 7481
scala學習手記12 - 字段、方法和構造函數

在上一節創建了一個scala類,如果沒有更多的方法scala類的定義還可以更簡單一些,看一下下面這個CreditCard類的定義: 是的,只用一行就完成了類的定義,連大括號都不需要。 因為scala也是運行在JVM上,可以考慮以java的方式來看看編譯后的類文件。查看的方式還是比較 ...

Thu Jun 16 06:36:00 CST 2016 0 2422
scala學習手記21 - 傳遞變長參數

在Java中是可以使用變長參數的,如下面的方法: 在scala中也可以使用變長參數。和java一樣,也是只有最后一個參數可以接收可變長度的參數。使用方式是在參數類型后使用特殊符號“*”,如下面的max()方法: foldLeft是TraversableOnce類的一個方法 ...

Sun Jul 17 07:00:00 CST 2016 0 1923
scala學習手記18 - Any和Nothing

Any 前面已經有兩次提到過:在scala中,Any類是所有類的超類。 Any有兩個子類:AnyVal和AnyRef。對應Java直接類型scala封裝類,如Int、Double等,AnyVal是它們的基類;對應引用類型,AnyRef是它們的基類。 scala中,所有類的關系可以用下面這張 ...

Fri Jun 24 05:58:00 CST 2016 0 5407
scala學習手記14 - 單例對象

java中的單例模式都很熟悉了:簡單地說就是一個類只能有一個實例。在scala中創建單例對象非常簡單,創建類時使用object關鍵字替換class即可。因為單例類無法初始化,所以不能向它的主構造函數傳遞參數。 下面是一個單例的示例: 其中的MarkerFactory就是一個單例。單例 ...

Sat Jun 18 06:51:00 CST 2016 0 1760
scala學習手記5 - 元組與多重賦值

假定要在一個方法返回多個值。比如需要返回一個人的名、姓和郵箱地址。在Java中最常用的方法是定義一個Person類,其中包括相對應的字段;還有些不常用的方法就是返回一個集合或數組,拿到結果后再進行循環取值。在Scala中我們又多一個選擇:元組。 元組是一個不可變的對象序列,可以使用逗號分隔的值 ...

Sun Jun 05 07:33:00 CST 2016 0 2854
scala學習手記6 - 字符串與多行原始字符串

scala中的字符串類就是java中的java.lang.String類。不過scala也為String提供了一個富封裝類:scala.runtime.RichString。 scala可以將java.lang.String類自動轉換為scala.runtime.RichString類 ...

Mon Jun 06 06:42:00 CST 2016 0 4816
Linux.NET學習手記(6)

各位讀者大家好,好長一段時間沒有更新文章了,自從參加工作之后,每天等待去做的工作沒完沒了,個人的時間也變得奢侈起來,今后要盡量從中脫身,抽更多的時間來完成自己想做的事情(希望如此)。 言歸正傳,上一回合中,我們討論學習了如何在Linux.NET中讓一個 MVC 3.0 和 MVC 4.0 的項目 ...

Sun Nov 10 09:34:00 CST 2013 24 6806
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM