如果你要在執行程式時,一併給定執行引數,則可以在程式中,使用args來取得這些引數,args參考至Array[String]實例,收集了你所給定的引數,args(0)代表第一個引數,args(1)代表第二個引數....依此類推,注意存取索引是用()而不是[]。
你也可以使用 scala.Console 中所定義的方法來取得使用者的輸入或進行輸出,例如:
Console.print("輸入整數:")
val x = Console.readInt
Console.print("輸入字串:")
val y = Console.readLine
Console.println("整數:" + x)
Console.println("字串:" + y)
在Console物件中定義了許多關於主控台輸入輸出的方法,print()方法會輸出指定的文字而不換行,println()方法則輸出後換行,至於輸入的部份,也有許多針對不同資料型態的readXXX方法。
事實上,上面的範例程式,你也可以寫成:
print("輸入整數:")
val x = readInt
print("輸入字串:")
val y = readLine
println("整數:" + x)
println("字串:" + y)
可以這麼縮寫的原因在於,在Scala中會自動匯入(import)scala.Predef 物件,範例中的print()、println()、readInt等方法,其實就是定義在Predef中,而print()、println()、readInt等方法定義為呼叫Console中對應的方法(Scala會自動匯入的有java.lang、scala套件與scala.Predef物件)。
你可以使用printf()(呼叫了Console.printf())來格式化主控台輸出,例如:
// 輸出 19 的十進位表示
printf("%d%n", 19)
// 輸出 19 的八進位表示
printf("%o%n", 19)
// 輸出 19 的十六進位表示
printf("%x%n", 19)
'%d'表示將指定的數值以 十進位表示,'%o'是八進 位表示,而'%x'是十六進位表示,'%n'是 指輸出平台特定的換行字元,如果是在Windows下實際上會置換為 '/r/n',如果是 Linux下則會置換為'/n'。
下表簡單列出了一些常用的轉換符號:
%% | 在字串 中顯示% |
%d | 以10 進位整數方式輸出 |
%f | 將浮點 數以10進位方式輸出 |
%e, %E | 將浮點 數以10進位方式輸出,並使用科學記號 |
%a, %A | 使用科 學記號輸出浮點數,以16進位輸出整數部份,以10進位 輸出指數部份 |
%o | 以8進 位整數方式輸出 |
%x, %X | 將整 數以16進位方式輸出 |
%s, %S | 將字串 格式化輸出 |
%c, %C | 以字元 方式輸出 |
%b, %B | 將"true" 或"false"輸出(或"TRUE"、 "FALSE",使用 %B)。另外,非null值輸出是"true",null值輸出是"false" |
%t, %T | 輸出日 期/時間的前置 |
可以在輸出浮點數時指定精度,例如:
printf("example:%.2f%n", 19.234)
執行結果會輸出example:19.23。也可以指定輸出時,至少要預留的字元寬度,例如:
printf("example:%6.2f%n", 19.234)
由於預留了6個字元寬度,不足的部份要由空白字元補上,所以執行結果會輸出如下(19.23只佔五個字元,所以補上一個空白在前端),結果是顯示example: 19.23。
以上只是簡短的列出一些常用的輸出轉換符號,事實上,詳細的描述可以參考 java.util.Formatter 所提供的說明。