> 백엔드 개발 > Golang > Go 구조체를 배우면서 마침내 코딩을 좋아하게 된 이유

Go 구조체를 배우면서 마침내 코딩을 좋아하게 된 이유

Mary-Kate Olsen
풀어 주다: 2024-10-07 16:08:29
원래의
554명이 탐색했습니다.

"초창기 코드와 씨름하던 시절이 아직도 기억납니다.
How Learning Go Structs Finally Made Me Love Coding

기본은요? 나는 거기에 가고 있었다. 하지만 구조체가 등장했고 모든 것이 흐릿하게 느껴졌습니다. 계속 문제가 발생했고 코드가 엉망이 되었습니다. 내가 뭘 잘못한 걸까요?
자리에 앉아 Go 구조체의 기본 사항을 배우고 효율적으로 사용하기 시작한 후에야 마침내 성공했습니다. 그것이 전환점이었습니다. 갑자기 코드가 더욱 체계화되고 효율적이며 깔끔해졌습니다. 프로그래밍에 접근하는 방식이 바뀌었고 이전과는 전혀 다른 방식으로 코딩을 즐기기 시작했습니다."
구조체가 왜 그토록 강력한지 궁금하신가요? 같은 생각이라면 이 게시물이 도움이 될 것입니다. 구조체를 이해하고 코딩 게임을 어떻게 바꿀 수 있는지 보여드리겠습니다!

How Learning Go Structs Finally Made Me Love Coding

구조체란 무엇입니까?
Go에서 구조체는 다양한 유형의 데이터를 함께 묶을 수 있는 청사진과 같습니다. 사람, 자동차, 책과 같은 복잡한 엔터티를 모델링하기 위한 사용자 정의 데이터 구조라고 생각하세요.
예를 들어, Person 구조체는 사람의 이름, 나이, 성별과 같은 필드를 보유할 수 있어 관련 정보를 그룹화하는 데 적합합니다.
구조체를 사용하는 이유
구조체를 사용하면 관련 데이터를 함께 구성하고 묶을 수 있으므로 복잡한 데이터 모델을 더 쉽게 관리할 수 있습니다. 사용자, 제품 또는 재고를 추적하는 앱을 구축하는 경우 구조체를 사용하면 주소에 거리, 도시 및 우편번호가 포함되는 것처럼 다양한 유형의 데이터를 그룹화할 수 있습니다.
구조체 선언: 기본
구문은 매우 간단합니다. 키워드 유형, 구조체 이름, 중괄호 안의 필드를 사용하여 구조체를 정의합니다.



type Person struct {
    Name   string
    Age    int
    Gender string
}


로그인 후 복사

이제 이름(문자열), 나이(int), 성별(문자열)의 세 가지 필드를 포함하는 Person 구조체가 있습니다.

구조체 필드 액세스 및 수정

구조체의 필드에 액세스하려면 간단히 점(.) 연산자를 사용하면 됩니다.


fmt.Println("Name:", person.Name)
fmt.Println("Age:", person.Age)
fmt.Println("Gender:", person.Gender)



로그인 후 복사

필드를 변경하시나요? 쉬운! 다른 변수와 마찬가지로 값을 수정할 수 있습니다.


person.Age = 26
fmt.Println("Updated Age:", person.Age)


로그인 후 복사

왜 코더는 구조체를 신뢰하지 않나요?
왜냐하면 그들은 자신의 "분야"를 다루고 싶지 않기 때문입니다
How Learning Go Structs Finally Made Me Love Coding

구조체 메서드: 동작 추가

여기서 상황이 더욱 흥미로워졌습니다. 구조체에 메서드를 연결하여 동작을 제공할 수 있습니다. 마치 구조체에 작업을 수행할 수 있는 능력을 부여하는 것과 같습니다!

Person 구조체에 대한 Greet 메서드를 정의해 보겠습니다.


func (p Person) Greet() string {
    return "Hello, my name is " + p.Name
}



로그인 후 복사

이제 상대방이 당신에게 인사하도록 할 수 있습니다:


fmt.Println(person.Greet())



로그인 후 복사

중첩 구조체가 있는 구조체: 복잡하면서도 단순하게 만들기

Go 구조체는 내부에 다른 구조체를 담을 수 있으며 이는 더 복잡한 데이터를 모델링하려는 경우에 유용합니다. 전체 프로필에 대한 주소 구조체를 포함하는 학생 구조체를 상상해 보세요.


type Address struct {
    City  string
    State string
}

type Student struct {
    Name    string
    Age     int
    Address Address
}



로그인 후 복사

이제 학생을 생성하고 다음과 같은 중첩 필드에 액세스할 수 있습니다.


student := Student{
    Name: "Fred Gitonga",
    Age:  21,
    Address: Address{
        City:  "Kisumu",
        State: "Mamboleo",
    },
}

fmt.Println(student.Name, "lives in", student.Address.City)



로그인 후 복사

"프로그램은 사람이 읽을 수 있도록 작성되어야 하며, 기계가 실행할 수 있도록 작성되어야 합니다." — 해롤드 아벨슨

구조체 관련 일반적인 실수

구조체를 사용하기 전에 다음과 같은 일반적인 함정에 주의하세요.

  1. 초기화되지 않은 필드: Go는 필드를 초기화하지 않으면 필드에 자동으로 기본 0 값(예: 정수의 경우 0, 문자열의 경우 "")을 할당합니다.
  2. 필요하지 않을 때 포인터 사용: 작은 구조체의 경우 참조보다는 값으로 전달하는 것이 더 효율적인 경우가 많습니다.

연습이 완벽을 만듭니다!

  1. 쉬움: 제목, 저자 및 페이지 필드가 있는 Book 구조체를 만듭니다. 책의 정보를 표시하는 방법을 작성하세요.
  2. 중급: 여러 Book 구조체를 보유하는 라이브러리 구조체를 만듭니다. 책을 추가하고 도서관에 있는 모든 책을 나열하는 방법을 작성하세요.
  3. 고급: 차량 구조를 구축하고 Fleet 구조를 사용하여 차량을 관리하며 연도별 차량 추가, 제거 및 검색을 완료합니다.

결론: 주요 시사점

  1. 구조체는 Go에서 관련 데이터를 그룹화하는 데 필수적입니다.
  2. 메서드와 중첩된 구조체를 사용하여 구조체를 향상할 수 있습니다.
  3. 함수 내부의 원래 구조체를 수정해야 할 때 포인터를 사용하세요.

Go 구조체가 나에게 코딩을 더 쉽게 만들어준다면 여러분에게도 분명 똑같은 일을 해 줄 것입니다. 즐거운 코딩하세요!

How Learning Go Structs Finally Made Me Love Coding

위 내용은 Go 구조체를 배우면서 마침내 코딩을 좋아하게 된 이유의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:dev.to
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿