Изучаем Go. Массивы и срезы в Go. Программирование на Go #4

Поділитися
Вставка
  • Опубліковано 29 гру 2024

КОМЕНТАРІ • 22

  • @felipe3910
    @felipe3910 2 місяці тому

    важный вопрос. Кроме размера в памяти, и динамики в чем разница то между срезом и массивом? В каком случаи используем массив, в каком срез (исключая надобность экономии памяти и возможности расширения). Заранее спасибо за ответ.

  • @ma1iwan
    @ma1iwan 9 місяців тому

    А в чем разница между массивом который записывается с троеточием [...] и срез с пустыми скобками [ ]?

  • @shuflyn
    @shuflyn 2 роки тому +3

    тема слайсов не раскрыта

  • @СергейПтушкин-к5ы
    @СергейПтушкин-к5ы 4 роки тому +1

    Если я все верно понял, то должно получится вот так:
    package main
    import (
    "fmt"
    "io/ioutil"
    "log"
    )
    func main() {
    /*-- Пустой срез, который наполнить элементами из просмотренной папки. Наполнить срез в цикле. В конце вывести срез и длину среза --*/
    slice := []string{}
    files, err := ioutil.ReadDir(".")
    if err != nil {
    log.Fatal(err)
    }
    for _, file := range files {
    slice = append(slice, file.Name())
    }
    fmt.Println(slice, len(slice))
    /*-- Массив, длинной равной количеству элементов в папке, после чего заполнить массив элементами, которые . находятся в папке --*/
    array := make([]string, len(files))
    for k, v := range files {
    array[k] = v.Name()
    }
    fmt.Println(array, len(array))
    }

    • @BeGeek101
      @BeGeek101  4 роки тому

      похоже на правду

    • @ruby4an
      @ruby4an Рік тому

      Не правильно) Ты создал такой же срез, только другим способом

  • @ДмитрийАнатольевич-ъ5ч

    Огонь))))!

  • @АндрейВерхулин
    @АндрейВерхулин 3 роки тому

    Приветствую. Почему если назначить " var array := []int{1,2,3} " возникает ошибка синтаксиса? Потому-что переменная array зарезервирована в языке как массив? И её нельзя назначить? Или в чем проблема

    • @kaelloskye
      @kaelloskye 3 роки тому +1

      Потому что надо либо `var array = []int{1,2,3}`, либо `array := []int{1,2,3}`

  • @alexfish289
    @alexfish289 5 років тому +1

    В реальных проектах, массивы обычно не используют. Юзают именно срезы, которые называют массивами.

    • @BeGeek101
      @BeGeek101  5 років тому +1

      не спорю, но рассказать об этом нужно

    • @sikinski1588
      @sikinski1588 2 роки тому

      Почему не используют? Потому что часто нет необходимости использовать фиксированную длину массива?

  • @ЮрийСалагаев
    @ЮрийСалагаев 4 роки тому +1

    крутяк

  • @zosyanax
    @zosyanax 3 роки тому

    мое решение:
    package main
    import (
    "fmt"
    "io/ioutil"
    "log"
    )
    func main() {
    arDir,errors := ioutil.ReadDir("C:\\Users\\user8")
    if errors != nil {
    log.Fatal(errors)
    }
    itemsCount := len(arDir)
    slice := make([]string, 0, itemsCount)
    var arr [41]string
    for i, files:= range arDir{
    slice = append(slice, files.Name())
    arr[i] = files.Name()
    }
    fmt.Println(arr, len(arr))
    fmt.Println(slice, len(slice))
    }

  • @Vhoode
    @Vhoode Рік тому

    func main() {
    files, err := os.ReadDir("./dz")
    if err != nil {
    log.Fatal(err)
    }
    var fileName []string
    for _, file := range files {
    fileName = append(fileName, file.Name())
    }
    fmt.Println(len(fileName), fileName)
    }

  • @pudjeblechole
    @pudjeblechole 2 роки тому

    ахах, массив стрингов, не плохо)

  • @starpom1234
    @starpom1234 3 роки тому

    лучше на гите код кидать.