學習軌道
/
F#
F#
/
練習
/
日誌等級
日誌等級

日誌等級

學習練習

簡介

字串

在 F# 中,string 是一種物件,用來表示不可變的文字,也就是一連串的 Unicode 字元(字母、數字、標點符號等),定義方式如下:

let fruit = "Apple"

字串的操作方式有兩種:呼叫字串本身的方法,或是使用 String 模組的函式。字串一旦建立,它的值就永遠不會改變。任何看起來會修改字串的方法或函式,實際上都會回傳一個新的字串。

字串可以用幾種不同的方式串接或格式化。

  • 你可以使用 + 運算子來串接:
let sentence = "Apple" + " is a type of fruit."
  • 你可以使用 sprintf 函式來格式化文字,在格式文字中放置預留位置(%s 代表 string),並把值當作引數傳入:
let sentence = sprintf "%s is a type of %s." "Apple" "fruit"

說明

在這道練習中,你會處理日誌行。

每一行日誌都是格式如下的字串:"[<LEVEL>]: <MESSAGE>"。

日誌等級一共有三種:

  • INFO
  • WARNING
  • ERROR

你有三個任務,每個任務都會拿到一行日誌,並要你對它做點處理。

1. 從日誌行取得訊息

實作 message 函式,回傳日誌行的訊息:

message "[ERROR]: Invalid operation"
// => "Invalid operation"

開頭或結尾的空白都應該移除:

message "[WARNING]:  Disk almost full\r\n"
// => "Disk almost full"

2. 從日誌行取得日誌等級

實作 logLevel 函式,回傳日誌行的日誌等級,且應以小寫回傳:

logLevel "[ERROR]: Invalid operation"
// => "error"

3. 重新格式化日誌行

實作 reformat 函式,重新格式化日誌行,把訊息放在前面,並在訊息之後的括號中加上日誌等級:

reformat "[INFO]: Operation completed"
// => "Operation completed (info)"
透過 GitHub 編輯 連結會在新視窗或分頁中開啟
F# Exercism

準備好開始 日誌等級 了嗎?

註冊 Exercism,透過 18 個概念148 個練習 和真人引導來學習並精通 F#,全部免費。