Metodos de string, list, dict e encadeamento

Objetivo de aprendizagem

  • Aplicar chamadas de metodo e encadeamento para produzir codigo compacto e legivel.

Sintaxe chave

let text: string = "  Lucia Lang  ";
let parts: list<string> = text.trim().lower().split(" ");

Exemplos

  • Metodos de string: upper, lower, trim, ltrim, rtrim, split, join, contains, starts_with, ends_with, replace, indexOf, repeat, substring, pad_left, pad_right, to_int, to_float, to_bool, count, capitalize, title, is_numeric, is_alpha, is_alnum.
  • Metodos de list: append, pop, contains, sort, reverse, indexOf, slice, clear, insert, remove, removeAt, extend, first, last, is_empty, copy.
  • Metodos de dict: keys, values, contains_key, get, clear, remove, items, is_empty, size, merge, put.

Exemplos de encadeamento

let cleaned: string = "  Lucia  ".trim().lower();
let words: list<string> = cleaned.split(" ");
let csv: string = ",".join(words);
let nums: list<int> = [3, 1, 2];
nums.sort();
let top2: list<int> = nums.slice(0, 2);
print(top2.contains(2));

Contratos para lembrar

  • append recebe exatamente um item compativel com list<T>.
  • pop nao recebe argumentos.
  • get aceita 1 ou 2 argumentos: chave e default opcional.
  • insert exige (index: int, value: T).
  • removeAt exige (index: int).
  • extend exige list<T> compativel com a lista alvo.
  • put exige (key: K, value: V) compativeis com o tipo do dict.
  • Tamanho de colecao usa len(x), nao .length().

Nota cross-target

  • dict.get(key) se comporta diferente quando a chave nao existe:

- Alvo Python: retorna None - Alvo JavaScript: retorna undefined

  • dict.get(key, default) e consistente nos dois alvos.

Erros comuns

  • Chamar metodos que nao pertencem ao tipo receptor.
  • Esquecer os contratos de argumentos dos metodos.

Pratica sugerida

  • Normalize uma lista de nomes e gere uma linha CSV.

Relacionados

  • types-and-collections
  • string-interpolation