반응형
책에 나와있는 간단한 예제
구조체를 리스트형으로 선언하고, 하드코딩으로 넣어둔 데이터를
전체를 보여주거나,
키를 넣어서 찾을수 있는 프로그램
package main
import (
"fmt"
"os"
"path"
)
type Entry struct {
Name string
Surname string
Tel string
}
var data = []Entry{}
func search(key string) *Entry {
for i, v := range data {
if v.Surname == key {
return &data[i]
}
}
return nil
}
func list(){
for _, v := range data {
fmt.Println(v)
}
}
func main(){
arguments := os.Args
if len(arguments) == 1 {
exe := path.Base(arguments[0])
fmt.Printf("Usage: %s search|list <arguments>\n", exe)
return
}
data = append(data, Entry{"AAA", "aaa", "1111"})
data = append(data, Entry{"BBB","bbb", "2222"})
data = append(data, Entry{"CCC","ccc","3333"})
switch arguments[1] {
case "search":
if len(arguments) != 3 {
fmt.Println("Usage: search Surname")
return
}
result := search(arguments[2])
if result == nil {
fmt.Println("Entry not found:", arguments[2])
return
}
fmt.Println(*result)
case "list":
list()
default:
fmt.Println("Not a valid option")
}
}
c의 구조체와 동일하게 선언 type 이름 struct 로 선언하고 애부 데이터 는 {} 안에!
사용 선언
var data = []Entry{}
컬렉션 타입에서 반복자 꺼내 쓰는거는 range 로!
포인터와 주소 넘기는 *, & 는 c 에서 활용법과 동일함
반응형