Percursos
/
F#
F#
/
Exercícios
/
Níveis de log
Níveis de log

Níveis de log

Exercício de aprendizagem

Introdução

Strings

Uma string em F# é um objeto que representa texto imutável como uma sequência de carateres Unicode (letras, algarismos, pontuação, etc.) e define-se da seguinte forma:

let fruit = "Apple"

Trabalhas com strings chamando os métodos da string ou usando as funções do módulo String. Depois de uma string ser criada, o seu valor nunca pode mudar. Quaisquer métodos ou funções que pareçam modificar uma string vão, na verdade, devolver uma nova string.

Podes concatenar ou formatar strings de várias formas diferentes.

  • Podes usar o operador + para concatenar:
let sentence = "Apple" + " is a type of fruit."
  • Podes usar a função sprintf para formatar texto, em que tens marcadores de posição num texto de formatação (%s para uma string) e forneces os valores como argumentos:
let sentence = sprintf "%s is a type of %s." "Apple" "fruit"

Instruções

Neste exercício vais processar linhas de registo.

Cada linha de registo é uma string formatada da seguinte forma: "[<LEVEL>]: <MESSAGE>".

Existem três níveis de registo diferentes:

  • INFO
  • WARNING
  • ERROR

Tens três tarefas e cada uma delas recebe uma linha de registo e pede-te que faças algo com ela.

1. Obter a mensagem de uma linha de registo

Implementa a função message para devolver a mensagem de uma linha de registo:

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

Qualquer espaço em branco no início ou no fim deve ser removido:

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

2. Obter o nível de uma linha de registo

Implementa a função logLevel para devolver o nível da linha de registo, que deve ser devolvido em minúsculas:

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

3. Reformatar uma linha de registo

Implementa a função reformat que reformata a linha de registo, colocando a mensagem primeiro e o nível de registo depois, entre parênteses:

reformat "[INFO]: Operation completed"
// => "Operation completed (info)"
Editar via GitHub A ligação abre numa nova janela ou separador
F# Exercism

Estás pronto para começar Níveis de log?

Inscreve-te no Exercism para aprenderes e dominares F# com 18 conceitos148 exercícios, e mentoria humana real, tudo grátis.