-
-
Save huruji/6e74bcfd45980b1e0ff99d92ca826ad3 to your computer and use it in GitHub Desktop.
Revisions
-
albrow revised this gist
Jun 28, 2013 . 1 changed file with 2 additions and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -8,7 +8,8 @@ import ( // askForConfirmation uses Scanln to parse user input. A user must type in "yes" or "no" and // then press enter. It has fuzzy matching, so "y", "Y", "yes", "YES", and "Yes" all count as // confirmations. If the input is not recognized, it will ask again. The function does not return // until it gets a valid response from the user. Typically, you should use fmt to print out a question // before calling askForConfirmation. E.g. fmt.Println("WARNING: Are you sure? (yes/no)") func askForConfirmation() bool { var response string _, err := fmt.Scanln(&response) -
albrow revised this gist
Jun 28, 2013 . 1 changed file with 3 additions and 3 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -17,9 +17,9 @@ func askForConfirmation() bool { } okayResponses := []string{"y", "Y", "yes", "Yes", "YES"} nokayResponses := []string{"n", "N", "no", "No", "NO"} if containsString(okayResponses, response) { return true } else if containsString(nokayResponses, response) { return false } else { fmt.Println("Please type yes or no and then press enter:") @@ -42,5 +42,5 @@ func posString(slice []string, element string) int { // containsString returns true iff slice contains element func containsString(slice []string, element string) bool { return !(posString(slice, element) == -1) } -
albrow created this gist
Jun 28, 2013 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,46 @@ import ( "fmt" "log" "os" "sort" ) // askForConfirmation uses Scanln to parse user input. A user must type in "yes" or "no" and // then press enter. It has fuzzy matching, so "y", "Y", "yes", "YES", and "Yes" all count as // confirmations. If the input is not recognized, it will ask again. The function does not return // until it gets a valid response from the user. func askForConfirmation() bool { var response string _, err := fmt.Scanln(&response) if err != nil { log.Fatal(err) } okayResponses := []string{"y", "Y", "yes", "Yes", "YES"} nokayResponses := []string{"n", "N", "no", "No", "NO"} if ContainsString(okayResponses, response) { return true } else if ContainsString(nokayResponses, response) { return false } else { fmt.Println("Please type yes or no and then press enter:") return askForConfirmation() } } // You might want to put the following two functions in a separate utility package. // posString returns the first index of element in slice. // If slice does not contain element, returns -1. func posString(slice []string, element string) int { for index, elem := range slice { if elem == element { return index } } return -1 } // containsString returns true iff slice contains element func containsString(slice []string, element string) bool { return !(PosString(slice, element) == -1) }