Maison >développement back-end >Golang >Accéder à la chaîne contenue dans une tranche
l'éditeur php Xiaoxin est là pour vous présenter comment accéder à la chaîne contenue dans la tranche. En PHP, le slicing fait référence à l'opération consistant à intercepter une partie des caractères d'une chaîne. En accédant aux chaînes de la tranche, nous pouvons obtenir les données requises ou effectuer d'autres opérations. Lors de l'utilisation du découpage, nous devons spécifier la position de départ et la position de fin pour obtenir la chaîne correspondante. Maîtriser l'utilisation des tranches apportera une grande commodité à notre travail de développement. Ensuite, apprenons en détail comment accéder à la chaîne contenue dans la tranche !
Je fais quelques exercices de codage pour mieux comprendre. L'exercice donné me demande de créer un programme qui accepte les entrées de l'utilisateur comme suit :
Je souhaite afficher les caractères correspondant aux indices pairs et impairs de chaque chaîne, séparés par des espaces, et avec chaque chaîne sur une ligne distincte.
Exemple de saisie :
2 foo_bar fizz_buzz
devrait afficher :
fobr o_a fz_uz izbz
Mais accéder à la tranche de chaîne dans mon programme renvoie une chaîne vide :
package main import ( "fmt" ) func main() { // read an integer describing how many strings will be input var num_strings int fmt.scan(&num_strings) // create a slice of strings to hold provided strings strings := make([]string, num_strings) // add provided strings to slice for i := 0; i < num_strings; i++ { var temp string fmt.scan(&temp) strings = append(strings, temp) } // check that strings have been appended fmt.println("strings:", strings) // check that strings can be accessed for i := 0; i < num_strings; i++ { fmt.println(i, strings[i]) // only i prints, not strings[i] } // loop over all strings for i := 0; i < num_strings; i++ { // if string index is even print the char for index, val := range strings[i] { if index%2 == 0 { fmt.print(val) } } fmt.print(" ") // if string index is odd print the char for index, val := range strings[i] { if index%2 != 0 { fmt.print(val) } } // newline for next string fmt.print("\n") } }
2 foo_bar fizz_buzz Strings: [ foo_bar fizz_buzz] 0 1
Parce que lorsque vous make
strings
tranchez, vous créez une tranche dont la capacité et la longueur sont n. Ainsi, lorsque vous y ajoutez, vous augmentez la longueur de la tranche :
Changez ce code :
// create a slice of strings to hold provided strings strings := make([]string, num_strings) // add provided strings to slice for i := 0; i < num_strings; i++ { var temp string fmt.scan(&temp) strings = append(strings, temp) }
À :
// create a slice of strings to hold provided strings strings := []{} // add provided strings to slice for i := 0; i < num_strings; i++ { var temp string fmt.scan(&temp) strings = append(strings, temp) }
ou
// create a slice of strings to hold provided strings strings := make([]string, num_strings) // add provided strings to slice for i := 0; i < num_strings; i++ { var temp string fmt.Scan(&temp) strings[i] = temp }
Vous devez adopter votre meilleur comportement.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!