David
спасибо
Vitaly
В гит залить?
там не настолько оперативно можно обсуждать, постить. телега все же мессенджер, а гит это гит )
David
Подскажите, как сделать сигнатуру ф-и, которая будет принимать массив любого типа? Я попробовал []interface{} но он требует конвертации каждого элемента func reverse_array(array []interface{}) { for first_index, last_index := 0, len(array) -1; first_index < last_index; first_index, last_index = first_index +1, last_index - 1 { array[first_index], array[last_index] = array[last_index], array[first_index] } }
Илья
func reverse_array[T any](array []T)
David
Понял, спасибо. Обидно, что синтаксис объявления функции меняется от этого
David
Еще небольшой вопрос, что от меня хотят?:) conversion from int to string yields a string of one rune, not a string of digits(did you mean fmt.Sprint(x)?)
Юра (Юрий Александрович)
Еще небольшой вопрос, что от меня хотят?:) conversion from int to string yields a string of one rune, not a string of digits(did you mean fmt.Sprint(x)?)
Хотят, чтобы вы что-то делали по-другому. А что именно - вы нам еще не рассказали )
David
Вот так код выглядит, не уверен, что будет работать после компиляции)) https://pastebin.com/3cUXSXNQ Таска: https://www.codewars.com/kata/559536379512a64472000053/train/go 2 места, которые делают ошибку: result[i] = string(ring_alphabet.Move(i - ring_current_index).Value.(int)) result[i] = string(9 - int(s[i]))
Anonymous
Еще небольшой вопрос, что от меня хотят?:) conversion from int to string yields a string of one rune, not a string of digits(did you mean fmt.Sprint(x)?)
Sprint(x) возвращает строку, самый быстрый и простой способ конвертировать инт в стринг
Sergey
Sprint(x) возвращает строку, самый быстрый и простой способ конвертировать инт в стринг
Смотря что понимать под быстрым, тот же strconv.Atoi() считается быстрее, потому что заточен под конкретную операцию, а вышеприведенный - универсальный под любой тип на рефлексии
Anonymous
Согласен, но на собесе в основном и пытаются понять что ты знаешь
David
Странно, что если заменить result[i] = string(9 - int(s[i])) на (s - строка, result - массив из этой строки) result[i] = string(9 - int(result[i])) То будет другая ошибка совсем: cannot convert result[i] (variable of type string) to type int И уже не понятно что мешает строку в число конвертировать простым int
Grigory
Потому что делая int(string) ты пытаешься битики строки запихнуть под тип инт, что является харамом
David
простите, что? может стоит пройти курс по приведению типов?)
Если кус по типам го - то может и год занять))
David
Я моуг понять, когда число в стоку не конвертируется, но наоборот...
Emin Zalaev
Почему же
Andrey
ладно, громко сказал. прочитать статью по конвертации типов. там всего 6 основных методов есть, думаю Вам это под силу)
Kir
закодировать
Andrey
Вы про strconv? Видел эти методы, но еще не разобрался в чем у них разница
просто эти методы и подходы есть в любых типизирвоанных языках, будь то С/С++/Go...хотя может Вы пришли Питона или Js
Emin Zalaev
www.google.com how to parse int to string
Emin Zalaev
Victor
что он пьет такое коричневое ?
David
«Абобус» Как это конвертировать в число?
Так-же, как число в строку конвертируется. string(int('d'))
Emin Zalaev
код на питоне
Grigory
Так-же, как число в строку конвертируется. string(int('d'))
За такое выражение вообще нужно давать по рукам
Emin Zalaev
можно и самому функцию написать
Grigory
Не пытайся концепции питона натянуть на типизированный язык
David
код на питоне
На питоне для такой задачи я бы использовал отрицательные индексы, которых в го, увы, нет.
Emin Zalaev
не к вам обращение было(
Emin Zalaev
а к ответу на мой стикер
Andrey
отрицательные индексы...омагад
Emin Zalaev
исходники го открывают много возможностей
Andrey
Emin Zalaev
так у него проблема была в конвертации инт в стринг и обратно?
Andrey
только инт в стринг
David
Меня больше интересует другое, почему s := "qwe" arr := str[] {"q", "w", "e"} arr[i] и s[i] дают разный результат
Emin Zalaev
)
Andrey
в одном буква, ав другом число?)
David
.
David
Странно, что если заменить result[i] = string(9 - int(s[i])) на (s - строка, result - массив из этой строки) result[i] = string(9 - int(result[i])) То будет другая ошибка совсем: cannot convert result[i] (variable of type string) to type int И уже не понятно что мешает строку в число конвертировать простым int
Emin Zalaev
Emin Zalaev
ну вообще если есть ide много вопросов решает
Юра (Юрий Александрович)
На питоне для такой задачи я бы использовал отрицательные индексы, которых в го, увы, нет.
Я вчера видел, как в одном из каналов по Go очень грубо высказались на счет экс-питонистов. Не помню, это здесь было, или нет...
Grigory
Emin Zalaev
Emin Zalaev
123 ведь по алфавиту так идут
David
Так, а что я должен увидеть на этом скрине?)
Andrey
мне вообще удивляет, что не зная Го идти в CodeWars)
Emin Zalaev
тут uint8 а тут string
David
Давайте еще раз. Какой вы ожидаете результат конвертации строки "абв" в число?
Строкуа подождет, тут вы правы, вопрос не такой однозначный. Вкратце - я ожидаю обратно число, которое ранее привел к строке.
Emin Zalaev
или был вопрос зачем разработчики языка так сделали?
Emin Zalaev
или был вопрос зачем разработчики языка так сделали?
наверное чтобы питонистов вычислять
David
мне вообще удивляет, что не зная Го идти в CodeWars)
Решил попробовать новый для себя метод изучения языка. А пробелы понимания, - они и после книги будут.
Emin Zalaev
ладно
Emin Zalaev
в курсе на степике все эти функции есть
Emin Zalaev
его можно за неделю пройти спокойно
Юра (Юрий Александрович)
Строкуа подождет, тут вы правы, вопрос не такой однозначный. Вкратце - я ожидаю обратно число, которое ранее привел к строке.
Посмотрите на программу глазами компилятора (который тоже программа). Когда вы требуете от компилятора привести строку к числу, компилятор не уверен (и даже не пытается предполагать), что в строке у вас хранится именно валидное число. При этом го - это высоконадежный язык, программы на котором или работают, или не работают, а не так, что "работает, но выводит какую-то чушь". Поэтому, поскольку компилятор не может быть уверен, что ваша строка приводима к инту, он вообще не позволяет это делать.
Юра (Юрий Александрович)
Хотите конвертировать строки в инты - пожалуйста, для этого есть специальная функция, возвращающая результат конвертации _и ошибку_, на случай, если конвертация невозможна.
Юра (Юрий Александрович)
Решил попробовать новый для себя метод изучения языка. А пробелы понимания, - они и после книги будут.
Понимаете? Go создан для задач, которые если решены - то работают. А не "ой, бля, опять чет сломалось. Странно, а вчера работало..."
Igor
тут uint8 а тут string
Каким образом у тебя uint
Emin Zalaev
ну с вскод не повезло
David
тут uint8 а тут string
То есть массив и строка с одинаковым содержимым будут возвращать разный тип? Это вообще законно?!
Юра (Юрий Александрович)
Поэтому рискованные ситуации вылавливаются и устраняются еще на этапе компиляции.
Emin Zalaev
[4]string и [5]string это разные типы
Emin Zalaev
как так...
Emin Zalaev
незаконно
Emin Zalaev
ну массив и строка