Контекст о том, почему я это называю: для человека, переходящего на Go с нескольких других языков, это было бы странно.
Я добавляю это здесь - просто чтобы продемонстрировать, что это может бытьполезно использовать временную переменную явно.barNotCorrectYet, имеет f, обновляемый с возвращением «false по умолчанию» из strconv.ParseBool (который изменил бы заданное значение).Таким образом, в случаях, когда мы хотим игнорировать неверные входные данные, будет полезно назначить выходные данные для временной переменной, проверить, не было ли ошибок возвращено, а затем обновить предустановленное значение barCorrectHandlingOfTempVariable .
func barNotCorrectYet(m map[string]string) bool {
f := true // preset value of variable
if _, exists := m["READWRITE"]; exists {
var err error
fmt.Println("Before Updating f : ", f)
f, err = strconv.ParseBool(m["READWRITE"])
if err != nil {
// If error, wrong value got updated on f.. and erased preset value
}
}
fmt.Println("[Value could be wrong] After Updating f : ", f)
return f
}
func barCorrectHandlingOfTempVariable(m map[string]string) bool {
f := true // preset value of variable
if _, exists := m["READWRITE"]; exists {
fmt.Println("Before Updating f : ", f)
temp, err := strconv.ParseBool(m["READWRITE"])
if err != nil { // Update only when there are no errors to not affect preset value
f = temp
}
}
fmt.Println("After Updating f : ", f)
return f
}