轨道
/
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#,全部免费。