Kirill
ребят привет, я чего-то лагаю, почему i[:1] - не срез стринг, а стринг?
У тебя в параметрах массив из строк, если я правильно понял, а ты передаешь строку
kostyaBro
нет ну, с нюансами
Вроде ж одно и то же просто слайс на английском а срез типо на русском
Khalid
я просто думал строка и есть массив букв
kostyaBro
Вообще впервые слышу чтобы говорили срез)
kostyaBro
Ок, ладно
Илья
шах и мат, лингвисты
kostyaBro
Я понимаю что не про семантику, я говорю что это одно и то же
Кіт ✙
Слайс
...поздравляю, вы получили путаницу!
kostyaBro
Говорю ж впервы слышу зачем-то придуманное русское слово срез, всегда было слайс в моем мире. Имхо вы внесли путаницу.
Кіт ✙
...поздравляю, вы получили путаницу!
слайсом мы называем динамический массив. А тут срез, который мы тоже называем слайсом. Что где?
Юрий
Срез это и есть слайс
kostyaBro
слайсом мы называем динамический массив. А тут срез, который мы тоже называем слайсом. Что где?
А ну тоесть чисто для строк придумади слово срез, правильно понял?
Кіт ✙
слайсом мы называем динамический массив. А тут срез, который мы тоже называем слайсом. Что где?
"взял слайс от строки", конечно, будет корректно, да и люди поймут, но имхо звучит как-то не так
kostyaBro
Ну ладно логика есть ибо строка не может быть динамическим масссивом
Кіт ✙
А ну тоесть чисто для строк придумади слово срез, правильно понял?
почему чисто для строк? Срезом мы называем выражение var[n:m], слайсом - динамический массив как таковой
Кіт ✙
В С они нуль-терминированные, в го это иммутабельный слайс, без cap разве что
kostyaBro
в голанге она им и является
Нууу нет, во первых структура другая во вторых строка хранится как константа, ты не можешь
kostyaBro
Любое добавление символа переалокация, это странный динамический массив
Кіт ✙
Нууу нет, во первых структура другая во вторых строка хранится как константа, ты не можешь
а динамический массив разве является собой, только если это какая-то конкретная структура? Я думал, что это такая структура данных.
kostyaBro
и нет, строка не константная, она иммутабельная
Ты не можешь ее мутировать так как она создается в облати памяти для констант, на сколько я их понял
kostyaBro
и что?
Ну в целом ок, просто странно называть такую неоптимальную структуру данных
kostyaBro
Динамическим массивом
kostyaBro
Но с какойто стороны это так
kostyaBro
нет, она лежит на хипе, как и все остальные не-константы
Просто интересный прикол, ты не можешь мутировать строку, будет паника. Но если ты создашь байты, потом ансейфом сделаешь строку то ты сможешь мутировать ее без паник
Кіт ✙
ты будешь мутировать конкретно низлежащий массив
kostyaBro
Я про попытки мутировать небезопасными методами
kostyaBro
почему странно? Ты фигню несёшь, честно говоря
К каждого свое мнение уж извините. Я просто говорю что такая "реализация" динамического массива, мягко говоря неоптимальна, поэтому и странно.
Кіт ✙
ты будешь мутировать конкретно низлежащий массив
underlying := []byte("Hello") unsafeStr := B2S(underlying) underlying[0] = 'A' fmt.Println(unsafeStr) unsafeStr[0] = 'B' fmt.Println(unsafeStr) первый принтлн выведет Aello. Последний не вызовется, потому что будет паника. Здесь мы обходим иммутабельность строки через доступ к низлежащему массиву. Но сама строка от этого менее иммутабельной не становится * B2S - славноизвестная функция из фастхттп, могу показать
kostyaBro
Кіт ✙
kostyaBro
Надоел... Ты и сам знаешь что с ней
kostyaBro
Я не спорю что это можно назвать динамическим массивом, я блять просто сказал что имхо это странно
kostyaBro
Вот не надо до слов докапываться.
Кіт ✙
Кіт ✙
Я не спорю что это можно назвать динамическим массивом, я блять просто сказал что имхо это странно
почему странно? А зачем строкам больше аллоцированной памяти, чем им реально надо?
kostyaBro
Банально ты можешь взять слайс от массива и изменять его потому что это будет тот же массив но его часть
kostyaBro
Со строками не так
kostyaBro
Вот ещё 1 аргумент почему странно называть их динамическим массивом
Кіт ✙
почему так?
kostyaBro
Ну да их вообще не получится мутировать
Кіт ✙
Вот ещё 1 аргумент почему странно называть их динамическим массивом
почитай, пожалуйста, что такое динамические массивы. И, желательно, про структуры данных как таковые
Кіт ✙
Grigorij
)) а всё началось с „какого то“ среза 🙈
Кіт ✙
А ты прочитай сообщения выше
просто ты говоришь "странно", а я вообще не понимаю, о чём ты, и что там "странного". Выглядит, будто тебе не нравится, что коты не собирают пыльцу после твоих попыток объяснить, я только удостоверился в своём мнении, если что
kostyaBro
Слово "субъективное" понимаешь?
kostyaBro
Кіт ✙
Ну и не понимай. Это субъективное мнение.
просто обычно, если у тебя сложилось определенное мнение, то ты его можешь как минимум аргументировать
Илья
Кот как всегда
kostyaBro
просто обычно, если у тебя сложилось определенное мнение, то ты его можешь как минимум аргументировать
Я аргументировал. Алгоритмическая сложность такой реализации, херня для динамического массива
Кіт ✙
Я аргументировал. Алгоритмическая сложность такой реализации, херня для динамического массива
это не аргумент, ты не уточнил, ни относительно чего асимптотика, ни даже какая именно, и почему вдруг "херня". Мне просто интересно понять твой ход мыслей
Кіт ✙
Банально каждое добавление элемента это O(n)
а мы часто конкатеируем строки?
kostyaBro
а мы часто конкатеируем строки?
А это не относится к теме разговора
Кіт ✙
А это не относится к теме разговора
почему? Задача программиста - подобрать наиболее оптимальную структуру данных и её реализацию для конкретного кейса. Оценка самого кейса соответственно влияет на выбор
Кіт ✙
а значит, кейсы применения определенной структуры данных могут напрямую влиять на её непосредственно внешний вид и устройство
kostyaBro
Ну и используй строку как динамический массив)
Кіт ✙
а значит, кейсы применения определенной структуры данных могут напрямую влиять на её непосредственно внешний вид и устройство
я не вижу ни одной причины, почему строки вдруг стали "странными". У нас есть иммутабельный объект (если хочется мутабельный - берём низлежащую реализацию в виде слайса байт)
Кіт ✙
Ну и используй строку как динамический массив)
что значит "использовать строку как динамический массив"?
Кіт ✙
О теперь ты слова перевираешь. Я не говорил что строки странные....
почему? Ты говорил о том, что их реализация - странная. Говоря о строке, я опираюсь конкретно на гошные строки, а значит, говоря о их реализации, мы говорим непосредственно о гошных строках