잠시만 기다려 주세요

     '대한민국이 더이상 발전하지 못하는 것은 부패한 언론들의 쓰레기짓 때문이다.'
전체검색 :  
이번주 로또 및 연금번호 발생!!   |  HOME   |  여기는?   |  바다물때표   |  알림 (19)  |  여러가지 팁 (1095)  |  추천 및 재미 (163)  |  자료실 (28)  |  
시사, 이슈, 칼럼, 평론, 비평 (800)  |  끄적거림 (142)  |  문예 창작 (719)  |  바람 따라 (75)  |  시나리오 (760)  |  드라마 대본 (248)  |  
살인!


    golang

golang - container/list 배열, slice 매우 간편한 list 사용하기
이 름 : 바다아이   |   조회수 : 10101         짧은 주소 : https://www.bada-ie.com/su/?791591807754
golang 에서는 list 라는 것을 지원하는데 이게 참 속도도 빠르고 일반 slice 보다 편합니다.
타입과 상관없이 어떤 것이든 막 집어 넣을 수 있다는 장점이 있네요..
PushBack 은 뒤에 추가 PushFront 는 앞에 추가 되겠습니다.


package main
 
import (
    "container/list"
    "fmt"
)
 
func main() {
    //새 이중 연결 리스트 생성
    mylist := list.New()
 
    // 리스트 요소 추가
    mylist.PushBack("A")
    mylist.PushBack(100)
    mylist.PushBack(true)
    mylist.PushFront("A")
 
    // 리스트 Iteration
    for e := mylist.Front(); e != nil; e = e.Next() {
        fmt.Println(e.Value)
    }
}

결과


A
A
100
true



 

속도도 일반 slice 보다 빨라요... 아래는 속도 예제 입니다.

 
Golang program that benchmarks container list, slice

package main

import (
    "container/list"
    "fmt"
    "time"
    "strconv"
)

func main() {
    t0 := time.Now()

    // Version 1: use container list.
    for i := 0; i < 10000; i++ {
        // New list.
        values := list.New()
        // Add 2 elements to the list.
        values.PushBack("bird")
        values.PushBack("cat")
        // Add 20 elements at the front.
        for i := 0; i < 20; i++ {
            // Convert ints to strings.
            values.PushFront(strconv.Itoa(i))
        }
    }

    t1 := time.Now()

    // Version 2: use slice.
    for i := 0; i < 10000; i++ {
        // New empty slice.
        values := []string{}
        // Add 2 elements to the slice.
        values = append(values, "bird")
        values = append(values, "cat")
        // Add 20 elements at the front.
        for i := 0; i < 20; i++ {
            // Create a new slice and put the string at its start.
            // ... This inserts as the front.
            tempSlice := []string{}
            tempSlice = append(tempSlice, strconv.Itoa(i))
            // Now append all previous strings after the first one.
            for x := range(values) {
                tempSlice = append(tempSlice, values[x])
            }
            // Use the new slice.
            values = tempSlice
        }
    }

    t2 := time.Now()
    // Results.
    fmt.Println(t1.Sub(t0))
    fmt.Println(t2.Sub(t1))
}

Results

 24.4054ms    container/list
119.5599ms    slice


| |





      1 page / 6 page
번 호 카테고리 제 목 이름 조회수
180 golang golang ... 바다아이 148
179 golang golang , ... 바다아이 2737
178 golang golang , map . 바다아이 2118
177 golang Golang (, , data ) , ... 바다아이 2453
176 golang golang sort ... 바다아이 2812
175 golang golang html.EscapeString html.UnescapeString input value ... 바다아이 2738
174 golang golang go.mod go.sum . GOPATH SRC not module, 1.16 . 바다아이 6269
173 golang go 1.16 ... is not in GOROOT.. GOPATH .... . 바다아이 7424
172 golang , String Formatting 바다아이 8726
171 golang rand.Intn , random, , . 바다아이 8269
170 golang golang ... 바다아이 12038
169 golang golang gopath, goroot .. golang 바다아이 8987
168 golang golang ... Force download file example 바다아이 11020
167 golang golang , , cpu, memory, disk 바다아이 12085
166 golang golang , ... GOOS, GOARCH 바다아이 9729
165 golang golang checkbox ... 바다아이 9608
164 golang golang , , http .... 바다아이 9420
163 golang golang nil , nil , nil ... 바다아이 9502
162 golang 2 golang, go , .... golang .... 바다아이 12747
161 golang golang postgresql, mysql, mariadb ... ` Grave () .. .. 바다아이 10061
160 golang golang postgresql mysql, mariadb scan , null .. 바다아이 10140
159 golang golang , iconv 바다아이 12957
158 golang golang quote escape, unquote 바다아이 10371
157 golang golang , http errorLog , , ... 바다아이 10759
156 golang golang interface , 바다아이 9823
155 golang golang struct .... 바다아이 10541
154 golang golang map map , 바다아이 10021
153 golang golang map .... .... 바다아이 9351
152 golang golang slice copy 바다아이 9540
151 golang golang goto 바다아이 10728
| |









Copyright ⓒ 2001.12. bada-ie.com. All rights reserved.
이 사이트는 리눅스에서 firefox 기준으로 작성되었습니다. 기타 브라우저에서는 다르게 보일 수 있습니다.
[ Ubuntu + GoLang + PostgreSQL + Mariadb ]
서버위치 : 오라클 클라우드 춘천  실행시간 : 0.19533
to webmaster... gogo sea. gogo sea.