Size: a a a

2020 February 14

DP

Daniel Podolsky in Go-go!
Anton Kramarev
А в каких языках были мутабельные строки? Я пока не сталкивался
это вопрос определения типа "строка”
источник

RS

Roman Sharkov in Go-go!
Anton Kramarev
А в каких языках были мутабельные строки? Я пока не сталкивался
C++?
источник

DP

Daniel Podolsky in Go-go!
так в нем нет строки! 🙂
источник

AK

Anton Kramarev in Go-go!
C/C++ не использовал, не знаю
источник

DP

Daniel Podolsky in Go-go!
или есть уже?
источник

SA

Sky Alex in Go-go!
Daniel Podolsky
в go очень много всего, что “нэлза понят, надо просто запомныт” для человека без низкоуровневого бекграунда

если у тебя в подкладке есть С - все непонятки тебе, в общем, очевидны. если нет - смотришь на строки, которые иммутабельны и слайсы, которые нет, а устроены одинаково, и думаешь - “что за хрень?”
Ну я и с бекграундом временами натыкаюсь на вещи в го типа "Ну здесь то какого хрена и нахрена?".
источник

DM

Dmitry M in Go-go!
Владимир Столяров
Насчёт C немного не согласен, именно после него появилось понимание про передачу по ссылке и по значению
В Си нету сылок
источник

RS

Roman Sharkov in Go-go!
Daniel Podolsky
так в нем нет строки! 🙂
std::string, не часть языка, но часть стд.
источник

DP

Daniel Podolsky in Go-go!
Dmitry M
В Си нету сылок
вроде есть и ссылки, и указатели
источник

ВС

Владимир Столяров in Go-go!
Dmitry M
В Си нету сылок
Ну, по указателю, да
источник

C

Calculon in Go-go!
Sky Alex
Ну я и с бекграундом временами натыкаюсь на вещи в го типа "Ну здесь то какого хрена и нахрена?".
например?
источник

SA

Sky Alex in Go-go!
Calculon
например?
time.Format()
источник

SA

Sky Alex in Go-go!
Кроме как "так что б не как у других" я эту наркоманию пояснить не могу.
источник

C

Calculon in Go-go!
а как у других?😳
источник

SA

Sky Alex in Go-go!
Calculon
а как у других?😳
strftime
источник

GS

Gleb Selyukov in Go-go!
Daniel Podolsky
в общем случае - да. для частных случаев могут быть оптимизации, которые обходятся без копирования
func BytesToString(b []byte) string {
return *(*string)(unsafe.Pointer(&b))
}

func StringToBytes(s string) []byte {
sh := (*reflect.StringHeader)(unsafe.Pointer(&s))
bh := reflect.SliceHeader{
 Data: sh.Data,
 Len:  sh.Len,
 Cap:  sh.Len,
}
return *(*[]byte)(unsafe.Pointer(&bh))
}
источник

ВС

Владимир Столяров in Go-go!
Sky Alex
time.Format()
Ооооо, у кого-то с этого настолько бомбануло, что он сделал сайт fuckinggodateformat
Реально очень странное решение, и до сих пор не ясно, почему именно так сделали
источник

NW

Nerzh Woodcrust in Go-go!
Anton Kramarev
А в каких языках были мутабельные строки? Я пока не сталкивался
Swift - String строка это struct, value type, по умолчанию при присваивании или передаче копируется, если не обозначен как константа, можно изменять ее как хочешь
источник

DP

Daniel Podolsky in Go-go!
Владимир Столяров
Ооооо, у кого-то с этого настолько бомбануло, что он сделал сайт fuckinggodateformat
Реально очень странное решение, и до сих пор не ясно, почему именно так сделали
@schors , а у тебя в докладе было про это?
источник

AK

Anton Kramarev in Go-go!
Nerzh Woodcrust
Swift - String строка это struct, value type, по умолчанию при присваивании или передаче копируется, если не обозначен как константа, можно изменять ее как хочешь
Интересно, я просто ненастоящий программист. Знаю что в python, js, go, java стринги точно иммутабельны. А с другими языками как-то не сталкивался пока
источник