kGrams method Null safety

Set<KGram> kGrams(
  1. [int k = 3]
)

Returns a set of k-grams in the term.

Implementation

Set<KGram> kGrams([int k = 3]) {
  final Set<KGram> kGrams = {};
  if (isNotEmpty) {
    // get the opening k-gram
    kGrams.add(r'$' + substring(0, length < k ? null : k - 1));
    // get the closing k-gram
    kGrams.add(length < k ? this : (substring(length - k + 1)) + r'$');
    if (length <= k) {
      kGrams.add(this);
    } else {
      for (var i = 0; i <= length - k; i++) {
        kGrams.add(substring(i, i + k));
      }
    }
  }
  return kGrams;
}