на строке a := "Тест точки" Код срабатывает адекватно и проверка на точку проходит.
А вот когда я считываю строку , он мне даже тип не возвращает?
func main() {
text, _ := bufio.NewReader(os.Stdin).ReadString('\n')
fmt.Println(reflect.TypeOf(text))
var b = (len(text) - 1)
fmt.Println(string(text[b]))
if strings.Contains(string(text[b]), ".") == true {
fmt.Println("Ага кончается точкой")
} else {
fmt.Println("Не оканчивается точкой")
}
}
тут я ввожу текст и он отдает так
Тест точки.
string
Не оканчивается точкой
Как видно тип он не вернул и fmt.Println(string(text[b])) тоже не вернул
суть мне нужно проверить оканчивается ли строка точкой и все Ух ну и строки в Golang
ошибку проверил у ньюридера?
хм не понимаю, мне строку как то по другому считывать нужно? Ошибки не должно быть я же явно ввожу текст
раз тип не “возвращает” - значит, все еще читает строку почему - это уж вы сами выясняйте
но как он мог продолжить выполнять другую часть кода если не доделал первую часть на считывание
а он продолжил? не уважает, я думаю
а почему не regexp?
text, err := bufio.NewReader(os.Stdin).ReadString('\n') if err != nil { fmt.Println("Проверьте типы входных параметров") } else { fmt.Println("Ошибки не вижу") //Выведем результат, если ошибок нет } Сделал проверку Ввод "Тест точки." Ответ такой Ошибки не вижу
вроде тут все верно вывел, если верно написали результат
да но я беру код пишу на проверку строки вот так func main() { var a string a = "asda.sd." fmt.Println(a) var b = (len(a) - 1) fmt.Println(strings.Contains(string(a[b]), ".")) } Возвращает true Но если делаю это через считывание строки полностью То ошибка если так считывать , и строки пустые возвращаются - короче целая наука считать строку с переносами строк из консоли text, err := bufio.NewReader(os.Stdin).ReadString('\n')
func main() { r := bufio.NewReader(os.Stdin) text, err := r.ReadString('\n') if err != nil { log.Fatal(err) } fmt.Println(text) if strings.Contains(text, ".") { fmt.Println("Ага кончается точкой") } else { fmt.Println("Не оканчивается точкой") } }
Тээээк код сработал адекватно щас буду смотреть разницу
так а в text-то что у вас?
а я не могу знать мне ведь не возвращает тип данных Через fmt.Println(reflect.TypeOf(var_str))
этот тип я вам и так скажу - string вопрос в том, что в этой строке, после того как ReadString отработал
ой выдает нули и оканчивается этим когда println 0 0 0] 0x1400000e010 0 0 <nil> -1 -1} Короче пока пропущу раздел со строками ну его, странная штука
вы как строку-то напечатали?
нет не дает даже ввести
сори, потом разберусь.
Всего лишь неизменяемый массив байтов
Да это я хорошо усвоил Я запарился со считыванием
Обсуждают сегодня