Илья
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)?)
Юра (Юрий Александрович)
Grigory
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
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) ты пытаешься битики строки запихнуть под тип инт, что является харамом
Andrey
David
David
Я моуг понять, когда число в стоку не конвертируется, но наоборот...
Emin Zalaev
Почему же
Andrey
ладно, громко сказал. прочитать статью по конвертации типов. там всего 6 основных методов есть, думаю Вам это под силу)
David
Grigory
Kir
закодировать
Grigory
Emin Zalaev
www.google.com how to parse int to string
Emin Zalaev
Victor
что он пьет такое коричневое ?
Emin Zalaev
код на питоне
David
Grigory
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
в одном буква, ав другом число?)
Igor
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 много вопросов решает
Grigory
Grigory
Emin Zalaev
Юра (Юрий Александрович)
Emin Zalaev
123 ведь по алфавиту так идут
David
Так, а что я должен увидеть на этом скрине?)
Andrey
мне вообще удивляет, что не зная Го идти в CodeWars)
Emin Zalaev
Emin Zalaev
Emin Zalaev
или был вопрос зачем разработчики языка так сделали?
Emin Zalaev
Emin Zalaev
ладно
Emin Zalaev
в курсе на степике все эти функции есть
Emin Zalaev
его можно за неделю пройти спокойно
Юра (Юрий Александрович)
Строкуа подождет, тут вы правы, вопрос не такой однозначный.
Вкратце - я ожидаю обратно число, которое ранее привел к строке.
Посмотрите на программу глазами компилятора (который тоже программа).
Когда вы требуете от компилятора привести строку к числу, компилятор не уверен (и даже не пытается предполагать), что в строке у вас хранится именно валидное число. При этом го - это высоконадежный язык, программы на котором или работают, или не работают, а не так, что "работает, но выводит какую-то чушь". Поэтому, поскольку компилятор не может быть уверен, что ваша строка приводима к инту, он вообще не позволяет это делать.
Юра (Юрий Александрович)
Хотите конвертировать строки в инты - пожалуйста, для этого есть специальная функция, возвращающая результат конвертации _и ошибку_, на случай, если конвертация невозможна.
Emin Zalaev
ну с вскод не повезло
David
тут uint8 а тут string
То есть массив и строка с одинаковым содержимым будут возвращать разный тип? Это вообще законно?!
Юра (Юрий Александрович)
Поэтому рискованные ситуации вылавливаются и устраняются еще на этапе компиляции.
Emin Zalaev
Emin Zalaev
[4]string и [5]string это разные типы
Emin Zalaev
как так...
Emin Zalaev
незаконно
Emin Zalaev
ну массив и строка