GOLANG_INTERVIEW Telegram 1282
🔎 Задача на Go с подвохом

Код:
package main

import "fmt"

func main() {
s := make([]int, 3, 4) // Длина 3, capacity 4
s[0], s[1], s[2] = 1, 2, 3
modifySlice(s)
fmt.Println(s)
}

func modifySlice(s []int) {
s = append(s, 4)
s[0] = 100
}

Вопрос: Что выведет этот код?

Варианты ответа:

A. [1 2 3]
B. [100 2 3]
C. [1 2 3 4]
D. [100 2 3 4]

Правильный ответ: B

Объяснение:
1. Создается срез с длиной 3 и capacity 4, заполненный значениями [1, 2, 3]
2. При передаче в функцию modifySlice:
— append добавляет элемент 4, но не вызывает переаллокацию
— Изменение s[0] = 100 применяется к тому же underlying массиву
3. Однако исходный срез в main() останется длины 3, но первый элемент изменится:
— Длина среза в main не меняется
— Но изменения элементов видны, так как используется тот же массив

@golang_interview
🔥32👍74😁2🥱1



tgoop.com/golang_interview/1282
Create:
Last Update:

🔎 Задача на Go с подвохом

Код:

package main

import "fmt"

func main() {
s := make([]int, 3, 4) // Длина 3, capacity 4
s[0], s[1], s[2] = 1, 2, 3
modifySlice(s)
fmt.Println(s)
}

func modifySlice(s []int) {
s = append(s, 4)
s[0] = 100
}

Вопрос: Что выведет этот код?

Варианты ответа:

A. [1 2 3]
B. [100 2 3]
C. [1 2 3 4]
D. [100 2 3 4]

Правильный ответ: B

Объяснение:
1. Создается срез с длиной 3 и capacity 4, заполненный значениями [1, 2, 3]
2. При передаче в функцию modifySlice:
— append добавляет элемент 4, но не вызывает переаллокацию
— Изменение s[0] = 100 применяется к тому же underlying массиву
3. Однако исходный срез в main() останется длины 3, но первый элемент изменится:
— Длина среза в main не меняется
— Но изменения элементов видны, так как используется тот же массив

@golang_interview

BY Golang вопросы собеседований


Share with your friend now:
tgoop.com/golang_interview/1282

View MORE
Open in Telegram


Telegram News

Date: |

Telegram message that reads: "Bear Market Screaming Therapy Group. You are only allowed to send screaming voice notes. Everything else = BAN. Text pics, videos, stickers, gif = BAN. Anything other than screaming = BAN. You think you are smart = BAN. During a meeting with the president of the Supreme Electoral Court (TSE) on June 6, Telegram's Vice President Ilya Perekopsky announced the initiatives. According to the executive, Brazil is the first country in the world where Telegram is introducing the features, which could be expanded to other countries facing threats to democracy through the dissemination of false content. With the administration mulling over limiting access to doxxing groups, a prominent Telegram doxxing group apparently went on a "revenge spree." "Doxxing content is forbidden on Telegram and our moderators routinely remove such content from around the world," said a spokesman for the messaging app, Remi Vaughn. A Telegram channel is used for various purposes, from sharing helpful content to implementing a business strategy. In addition, you can use your channel to build and improve your company image, boost your sales, make profits, enhance customer loyalty, and more.
from us


Telegram Golang вопросы собеседований
FROM American