mirror of
https://github.com/goavengers/go-interview.git
synced 2026-02-04 12:46:20 +00:00
concatinate strings
This commit is contained in:
@@ -2,7 +2,21 @@
|
||||
|
||||
### <a name="1"></a> 1. Что из себя представляет тип данных string в языке Golang? Можно ли изменить определенный символ в строке? Что происходит при склеивании строк?
|
||||
|
||||
Строка Go - это байтовый срез, предназначенный только для чтения, который может содержать байты любого типа и иметь произвольную длину. Строка неизменяемая и изменить определенный символ в конкретной строке нельзя. Создается новая строка (в простейшем случае).
|
||||
Строка Go - это байтовый срез, предназначенный только для чтения, который может содержать байты любого типа и иметь произвольную длину. Строка неизменяемая и изменить определенный символ в конкретной строке нельзя. Создается новая строка (в простейшем случае).
|
||||
|
||||
### <a name="2"></a> 2. Вытекающий вопрос — как эффективно склеивать множество строк?
|
||||
|
||||
Например, чтобы избавиться от лишних аллокаций, можно воспользоваться типом strings.Builder и методом WriteString:
|
||||
```go
|
||||
func join(strs ...string) string {
|
||||
var sb strings.Builder
|
||||
for _, str := range strs {
|
||||
sb.WriteString(str)
|
||||
}
|
||||
return sb.String()
|
||||
}
|
||||
```
|
||||
И никто не мешает пользоваться пакетом strings.
|
||||
|
||||
### <a name="8"></a> 8. Как задать направление канала?
|
||||
|
||||
|
||||
Reference in New Issue
Block a user