Ejercicio: Uso de Copilot para autocompletar código
A medida que desarrolle con Copilot, encontrará que puede ayudarle a completar el código más rápido. Copilot puede autocompletar el código que está escribiendo y también sugerir código que pueda necesitar. En este ejercicio, usará Copilot para generar nuevos métodos en el proyecto Trie. ¡Comencemos!
Uso de Copilot para autocompletar código
Abra el archivo Trie.cs
Escriba una nueva línea después del
Trieconstructor y escriba el código siguiente:// Search for a word in the trie public bool Search(string word) {Espere a que Copilot genere código.
Copilot podría sugerir código similar al siguiente bloque de código:
// Search for a word in the trie public bool Search(string word) { TrieNode current = root; foreach (char c in word) { if (!current.HasChild(c)) { return false; } current = current.Children[c]; } return current.IsEndOfWord; }Presione Tab o haga clic en Aceptar para aplicar la sugerencia de código.
Vaya al método
AutoSuggest.Este método se basa en otro método
GetAllWordsWithPrefixincompleto. Puede usar Copilot para generar este método.Vaya al
GetAllWordsWithPrefixmétodo y quite la instrucción return;private List<string> GetAllWordsWithPrefix(TrieNode root, string prefix) { }Espere a que Copilot genere código.
Copilot debería sugerir código automáticamente al quitar la instrucción return. Si no es así, puede intentar escribir lo siguiente:
List<string> words =y Copilot debe completar el código.Copilot podría sugerir código similar al siguiente bloque de código:
private List<string> GetAllWordsWithPrefix(TrieNode node, string prefix) { List<string> words = new List<string>(); if (node.IsEndOfWord) { words.Add(prefix); } foreach (var child in node.Children) { words.AddRange(GetAllWordsWithPrefix(child.Value, prefix + child.Key)); } return words; }Presione Tab o haga clic en Aceptar para aplicar la sugerencia de código.
Revisa tu trabajo
En esta tarea, probará los métodos que creó con Copilot para comprobar que funcionan según lo previsto.
Abra el archivo Program.cs.
Quite la marca de comentario de la llamada al método
SearchWord:Trie dictionary = InitializeTrie(words); SearchWord(); // PrefixAutocomplete(); // DeleteWord(); // GetSpellingSuggestions();Vaya al método y quite la
SearchWord()marca de comentario del siguiente bloque de código:/* if (input != null && dictionary.Search(input)) { Console.WriteLine($"Found \"{input}\" in dictionary"); } */En el explorador de archivos, haga clic con el botón derecho en el archivo Program.cs y haga clic en Abrir en terminal integrado.
Escriba
dotnet runpara ejecutar el programa.Escriba una palabra para buscar como "sigue" o "beans".
Compruebe que la salida es similar a la siguiente:
Enter a word to search for, or press Enter to exit. follows Found "follows" in dictionary Enter a word to search for, or press Enter to exit. beans Did not find "beans" in dictionary Enter a word to search for, or press Enter to exit.Si el código muestra resultados diferentes, revise el código para encontrar el error y realizar actualizaciones. Vuelva a ejecutar el código para ver si ha corregido el problema. Continúe actualizando y ejecutando el código hasta que genere los resultados esperados.
Comente las llamadas a cualquier método y quite la marca de comentario de la
PrefixAutocompletellamada al método:Trie dictionary = InitializeTrie(words); // SearchWord(); PrefixAutocomplete(); // DeleteWord(); // GetSpellingSuggestions();Escriba
dotnet runpara ejecutar el programa.Escriba un prefijo para buscar como "pl" o "fo".
Presione Tab para autocompletar el prefijo. Puede presionar Tab varias veces para recorrer las sugerencias. Presione espacio para aceptar la sugerencia e iniciar una nueva palabra.
Compruebe que la salida es similar a la siguiente:
The dictionary contains the following words: as, astronaut, asteroid, are, around, cat, cars, cares, careful, carefully, for, forgot, follows, from, front, mellow, mean, money, monday, monster, place, plan, planet, planets, plans, the, their, they, there, towards, Enter a prefix to search for, then press Tab to cycle through search results. Press Enter to exit. place plan forgotSi el código muestra resultados diferentes, revise el código para encontrar el error y realizar actualizaciones. Vuelva a ejecutar el código para ver si ha corregido el problema. Continúe actualizando y ejecutando el código hasta que genere los resultados esperados.
Convierta en comentario la llamada al método
PrefixAutocomplete.