mirror of
https://github.com/goavengers/go-interview.git
synced 2026-02-04 04:36:19 +00:00
concatinate strings
This commit is contained in:
@@ -51,7 +51,7 @@
|
|||||||
- coming soon
|
- coming soon
|
||||||
6. [Вопросы по языку Golang](docs/GOLANG.md)
|
6. [Вопросы по языку Golang](docs/GOLANG.md)
|
||||||
- [Что из себя представляет тип данных string в языке Golang? Можно ли изменить определенный символ в строке? Что происходит при склеивании строк?](docs/GOLANG.md#1)
|
- [Что из себя представляет тип данных string в языке Golang? Можно ли изменить определенный символ в строке? Что происходит при склеивании строк?](docs/GOLANG.md#1)
|
||||||
- Вытекающий вопрос — как эффективно склеивать множество строк?
|
- [Вытекающий вопрос — как эффективно склеивать множество строк?](docs/GOLANG.md#2)
|
||||||
- Что будет происходить при конкурентной записи в map? Как можно решить эту проблему?
|
- Что будет происходить при конкурентной записи в map? Как можно решить эту проблему?
|
||||||
- Расскажите о ООП в Golang.
|
- Расскажите о ООП в Golang.
|
||||||
- В чем различия goroutine от потока системы?
|
- В чем различия goroutine от потока системы?
|
||||||
|
|||||||
@@ -4,6 +4,20 @@
|
|||||||
|
|
||||||
Строка 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. Как задать направление канала?
|
### <a name="8"></a> 8. Как задать направление канала?
|
||||||
|
|
||||||
Мы можем задать направление передачи сообщений в канале, сделав его только отправляющим или принимающим. Например:
|
Мы можем задать направление передачи сообщений в канале, сделав его только отправляющим или принимающим. Например:
|
||||||
|
|||||||
Reference in New Issue
Block a user