잠시만 기다려 주세요

HOME   |  여기는?   |  바다물때표   |  여러가지 팁 (888)  |  추천 및 재미 (154)  |  자료실 (20)  |  끄적거림 (520)  |  시나리오 (760)  |  드라마 대본 (248)  |  

2020년 10월 01일
담배를 끊으면 그 돈으로 좋은 일들을 할 수 있으며 건강도 덤으로 얻게 된다. - 바다아이
 




    golang

golang - container/list 배열, slice 매우 간편한 list 사용하기
이 름 : 바다아이   |   조회수 : 2357         짧은 주소 : 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
번 호 카테고리 제 목 이름 조회수
173 golang , String Formatting 바다아이 285
172 golang rand.Intn , random, , . 바다아이 287
171 golang golang ... 바다아이 1449
170 golang golang gopath, goroot .. 바다아이 1120
169 golang golang ... Force download file example 바다아이 1595
168 golang golang , , cpu, memory, disk 바다아이 2317
167 golang golang , ... GOOS, GOARCH 바다아이 1637
166 golang golang checkbox ... 바다아이 1873
165 golang golang , , http .... 바다아이 1811
164 golang golang nil , nil , nil ... 바다아이 1908
163 golang 2 golang, go , .... golang .... 바다아이 2710
162 golang golang postgresql, mysql, mariadb ... ` Grave () .. .. 바다아이 1993
161 golang golang postgresql mysql, mariadb scan , null .. 바다아이 2071
160 golang golang , iconv 바다아이 2224
159 golang golang quote escape, unquote 바다아이 2138
158 golang golang , http errorLog , , ... 바다아이 2243
157 golang golang interface , 바다아이 2174
156 golang golang struct .... 바다아이 2306
155 golang golang map map , 바다아이 2163
154 golang golang map .... .... 바다아이 2132
153 golang golang slice copy 바다아이 2097
152 golang golang goto 바다아이 2175
151 golang golang slice sort , int, string, float64 바다아이 2236
150 golang URL Parsing, url . parse 바다아이 2307
149 golang golang , interface{} ... 바다아이 2223
148 golang golang interface to string, , , map slice json 바다아이 2075
147 golang golang How to convert JSON string to map and slice, json 바다아이 2230
146 golang golang , file write, Writing Files 바다아이 2355
145 golang golang Insert Line or String to File, , , , , 바다아이 2104
144 golang golang replace 바다아이 2193
| |








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