목록list (398)
y0u_bat
인터페이스 인터페이스는 메서드의 집합이며 인터페이스에 메서드를 구현은 안함 func (a int) f() {fmt.Println(a)} type 이름 interface{f()} func main() {var p 이름p = 100p.f()} 결과: 100 빈 인터페이스는 모든타입을 저장 할 수 있다. test interface{}test.(type)test.(int)test.(float32)test.(string)등등등
보호되어 있는 글입니다.
보호되어 있는 글입니다.
구조체 type Game struct {name stringlevel int} 구조체 인스턴스 생성방법var v1 Gamevar v2 *Game // 구조체 포인터 선언v2 = new(Game) // 구조체 포인터에 메모리 할당v3 := new(Game) // 동시에 선언과 할당 구조체 인스턴스 생성할때 값 초기화var v1 Game = Game{"admin",10}v2 := Game{"admin2",20}v3 := Game{name:"admin3",level:30} v1.name = "admin4"v1.level = 10 이런식으로 . 으로 구조체 인스턴스의 필드에 접근 가능 구조체에 메서드 연결 type Game struct {hp intmp int} func (f *Game) game() { // ..
포인터 Go언어에서도 포인터를 지원합니다.포인터 연산은 허용하지 않고 메모리주소를 직접 대입을 할 수 없음 var p *intfmt.Println(p) 결과: nil // nil은 null과 같은 뜻 입니다. 빈포인터형 변수는 바로 사용 할수없으니 new함수로 메모리를 할당해야된다. var p *int = new(int)fmt.Println(p) 결과: 0x~~~~~~~ //메모리주소 var n int =1 var p *int = &nfmt.Println(*p) 결과: 1 func test(n *int) {*n =2} func main() {n := 1test(&n)fmt.Println(n)}결과: 2
클로저 클로저는 함수안에 함수를 선언가능하며 바깥쪽 함수에 선언된 변수에도 접근 할 수 있는 함수 ex) func main() {a,b := 1,2f := func(c int) int {return a+b+c}d := f(10)fmt.Println(d) } 결과: 13 func test() func(c int) int{a,b := 1,2return func(c int) int { //클로저라 함수를 호출할때 변수 a,b 값을 쓸수있다.return a+b+c} } 지연호출 특정함수가 끝나기 직전에 실행하게된다.defer 함수명(), defer 함수명(매개변수) func test() {fmt.Println("test1")} func main() {defer test()fmt.Println("hello")} ..
함수func sum(a int, b int) { fmt.Println(a+b)} func sum(a int, b int) int { // int형으로 리턴값이 반환됨return a+b} func sum(a int, b int) (c int) { // 리턴값이 c라는 변수임.c = a+breturn} func sum(a int, b int) (int,int) { // 리턴값이 2개return a-b,a+b } func sum(a int, b int) (c int,d int) { c = a-bd = a+b return } a,b := sum(1,3) 이런식으로 받으면 리턴값이 순서대로 a,b에 들어감. 가변인자func sum(n ...int) int { t := 0for _,v := range n {t +=..
보호되어 있는 글입니다.
부분 슬라이스 a := []byte("helloworld")fmt.Println(string(a[0:5])) [범위] 결과: hello mapa := map[[키타입]][값타입]{키값:값}b := make(map[[키타입]][값타입]) ex)a := map[string]int{"flag",8888}fmt.Println(a["flag"]) 결과: 8888 ex)a := make(map[string]int)a["flag"] = 8888fmt.Println(a["flag"]) 결과: 8888 이중맵a := map[string]map[string]int{ "game": map[string]int{"hp": 100,"mp": 100,},"game2": map[string]int{"hp":50,"mp":20, },..
보호되어 있는 글입니다.