]string{"3", "4", ".", "0", " ", "9", "8", ".", "4", " ", "8", "9", ".", "2"}
переконвертировать в slice float64 без использования пакетов, при помощи цикла и встроенных типов данных?
Собес на миддла?
нет задача на курсе
Сами решайте
На мидла? :)))
Ну может на мидла/сеньора
я правильно понимаю что нужно перевести в слайс из рун и удалить лишнее, или есть более лаконичное решение?
Читаю книжку, задача в ней есть пример, я решил его немного изменить
Сами решайте:) у вас есть задача, есть инструмент, возитесь, пока не получится
это понятно, хотелось пойти по короткому пути
когда учишь сам, это немного сложновато вот и подумал посмотреть пример
В этом и прикол учебы
Цифры можно по asci сматчить, а по остальному сами решайте что делать
На тех-дир, не меньше
Что такое "." в float64?
Зависит от того что требуется в ТЗ :)
Да и такой же вопрос про пробел
Очевидно, что на входе числа с плавающей точкой, разделенные пробелами, с дробной частью после точек, представленные в виде масива строк, каждый из элементов массива строка из одного символа
Вообще никакие пакеты использовать нельзя?
был пример в книге HeadFist Go с чтением строк из os.Stdin, я подумал вместо одной цифры добавить несколько через пробел, сконвертировать это слайс из float64, не особо получилось, решил посмотреть какой нибудь пример, но в ответ по делу ничего не посоветовали, вот черновик, сильно не ругайте только учусь вообще кодить.Без пакета, так как хотелось бы понимать все что происходит package main import( "reflect" "fmt" "bufio" "os" "log" //"strconv" //"strings" ) func getFloat() ([]string, error) { fmt.Println("Please enter the float numbers") userdata := bufio.NewReader(os.Stdin) input, err := userdata.ReadString('\n') if err != nil { log.Fatal(err) return []string{}, err } fmt.Println("Before loop input is:", input) numbers := []string{} for _, i := range input { i := string(i) numbers = append(numbers, i) } numbers = numbers[:len(numbers)-1] fmt.Printf("before float conversation:%v", numbers) fmt.Println(reflect.TypeOf(numbers).Kind()) fmt.Printf("The numbers is%#v", numbers) floats := []float64{} //var m float64 //for j := 0; j < len(numbers); j++ for _, elem := range numbers { fmt.Println(reflect.TypeOf(elem).Kind()) fmt.Println() //elem, _ := strconv.ParseFloat(elem, 64) //floats = append(floats, elem) } fmt.Printf("the floats is %.1f\n", floats) return numbers, nil } func main() { getFloat() }
Код бэктикетами надо оформлять
Обворачиваю в тройные обратные апострофы, или надо иначе?
pastebin gist go.dev
Вроде про здешний чат был
код лучше в виде ссылки на https://go.dev/play/ присылать подумайте в сторону того, что строку можно обойти как слайс рун, можно обойти как слайс байт (если не знаете разницу между обходами, погуглите. если не знаете разницу между руной и байтом, погуглите) далее подумайте в сторону того, что: - число 4, это число 4, ноль раз умноженное на 10 - число 45, это число 4, умноженное на 10 один раз, потом прибавленное к 5 ну а дальше вам только код написать, это самое простое) UPD: это не задачка на поискать решение в книге, в интернете, это на подумать)
Спасибо.Насчёт рун и байтов знаю, просто хотел посмотреть примеры цикла с обходом и конвертацией плюс наверное регулярки для валидации на цифры и точку между ними, поэтому пример было бы классно, но если нет так нет, видимо не там ищу его
Обсуждают сегодня