У меня есть следующий код:Go: объявление фрагмента внутри структуры?
type room struct {
width float32
length float32
}
type house struct{
s := make([]string, 3)
name string
roomSzSlice := make([]room, 3)
}
func main() {
}
И когда я пытаюсь построить и запустить его я получаю следующие ошибки:
c:\go\src\test\main.go:10: syntax error: unexpected :=
c:\go\src\test\main.go:11: non-declaration statement outside function body
c:\go\src\test\main.go:12: non-declaration statement outside function body
c:\go\src\test\main.go:13: syntax error: unexpected }
Что я сделал не так?
Спасибо!
просто объявите его как другие поля. «s [] строка» в этом случае; ошибка довольно четко говорит вам, что не так. – Snowman
Спасибо, но если я объявлю это, как вы сказали, какая разница между объявлением среза и объявлением массива? – Gambit2007
Одна вещь состоит в том, что часть * типа * массива - это длина, поэтому массив из 3 элементов не является тем же типом, что и массив из 4 элементов, поэтому, если вы объявите массив, такой как var n [3] int то у вас есть массив из 3-х целых чисел, с срезом в том же контексте, который вы пишете: var [] int, без указания длины. Я хочу сказать, просто не волнуйтесь о массивах; на самом деле они не являются непосредственно полезными для нас почти во всех случаях. – Snowman