본문 바로가기

golang18

Golang Slice(슬라이스) 요소 제거하기 개요Golang slice(슬라이스) 요소 제거하는 법에 대해 알아보겠습니다. 1. 인덱스를 사용하여 요소 제거slice := []int{1, 2, 3, 4, 5}index := 2 // 제거할 요소의 인덱스slice = append(slice[:index], slice[index+1:]...)fmt.Println("인덱스로 제거 후:", slice)// 출력: 인덱스로 제거 후: [1 2 4 5]append 함수를 사용하여 제거하려는 요소를 제외한 두 부분을 연결합니다. 슬라이스의 순서를 유지하면서 요소를 제거할 수 있습니다.2. Slice(슬라이스) 처음 또는 마지막 요소 제거slice := []int{1, 2, 3, 4, 5}// 첫 번째 요소 제거slice = slice[1:]fmt.Println.. 2024. 7. 31.
Golang Slice(슬라이스) : make, copy, append 개요슬라이스를 생성하고 조작하는 데 사용되는 세 가지 중요한 내장 함수인 make, copy, 그리고 append에 대해 살펴보겠습니다.1. make 함수`make` 함수는 타입, 길이, 용량 이렇게 세 가지 인수를 받습니다. 내장함수 주석은 다음과 같습니다.// The make built-in function allocates and initializes an object of type// slice, map, or chan (only). Like new, the first argument is a type, not a// value. Unlike new, make's return type is the same as the type of its// argument, not a pointer to it... 2024. 7. 31.
Golang Slice(슬라이스) 동작원리와 사용법 개요해당 포스팅은 slices-intro(go.dev) 을 참고하여 작성되었습니다.Golang 슬라이스(Slice)는 효율적이고 유연한 데이터 구조입니다. 배열과 유사하지만, 크기가 동적으로 조절될 수 있어 더 자유롭게 사용 할 수 있는 자료구조 or 구조체입니다.배열슬라이스 동작원리의 포스팅이지만, 슬라이스를 이해하려면 배열 부터 이해를 해야합니다. 간단하게 알아보고 넘어 가보겠습니다.1. 배열의 기본 특성정의: Go에서 배열은 고정된 길이의 동일한 타입 요소들의 연속된 집합입니다.선언 예시: var a [5]int (5개의 정수를 저장할 수 있는 배열 선언)2. 배열의 초기화와 접근var a [5]inta[0] = 1i := a[0]// a 출력 : [1 0 0 0 0] 배열은 선언 시 모든 요소가 .. 2024. 7. 31.
Golang Arrays(배열), Slice(슬라이스) - 선언, 초기화 방법 ※ 개요고정 크기 또는 가변 크기?크기가 타입의 일부인가?다차원 배열은 어떻게 생겼나?빈 배열은 의미가 있는가?Golang 개발팀은 위의 질문에 대한 답을 찾기위해 1년이 걸렸다고 합니다. 앞으로의 포스팅을 통해 Arrays(배열), Slice(슬라이스)에 대해 기본부터 특성 사용법까지 알아 보도록 하겠습니다.참고링크: 배열, 슬라이스(및 문자열)(go.dev) ※ Arrays(배열)배열은 동일한 타입의 요소들을 연속된 메모리 공간에 저장하는 데이터 구조입니다.주요특징 고정 크기: Go의 배열은 선언 시 크기가 고정되며, 이는 변경할 수 없습니다.타입의 일부: 배열의 크기는 타입의 일부입니다. 즉, [5]int와 [10]int는 서로 다른 타입입니다.값 타입: Go에서 배열은 값 타입입니다. 이는 배열을.. 2024. 7. 31.
Golang Interface - 암시적 인터페이스: 코드 유연성과 재사용성 Golang 인터페이스 소개Go 언어의 인터페이스는 다른 언어들과 비교하여 독특한 특징을 가지고 있습니다. Go의 인터페이스는 암시적으로 구현되며, 이는 Go의 유연성과 간결성을 높이는 핵심 요소입니다.1. 인터페이스의 기본 개념인터페이스는 메서드의 집합을 정의합니다. 구조체나 타입이 이 메서드들을 모두 구현하면, 해당 인터페이스를 구현한 것으로 간주됩니다. Go에서는 이를 명시적으로 선언할 필요가 없습니다.기본 문법인터페이스는 암묵적으로 구현예제출처 : 링크package mainimport "fmt"type I interface { M()}type T struct { S string}func (t T) M() { fmt.Println(t.S)}func main() { var i I = T{"hello".. 2024. 7. 27.
Golang Interface 최적화: 인터페이스 불필요한 추상화 피하고 테스트 용이성 높이기 개요Go 언어의 인터페이스는 다른 언어들과 달리 독특한 특성을 가지고 있습니다. Golang interface 사용시 주의할점을 알아 보겠습니다. 1. Golang 인터페이스 암묵적 구현의 개념Go에서는 타입이 인터페이스에 정의된 모든 메서드를 구현하기만 하면, 해당 타입은 자동으로 그 인터페이스를 만족합니다. 이를 "암묵적 구현"이라고 합니다. 이는 다른 언어에서 흔히 볼 수 있는 "implements" 키워드 같은 명시적 선언이 필요 없는 이유입니다. 2. Golang Wiki 설명 링크Go interfaces generally belong in the package that uses values of the interface type, not the package that implements tho.. 2024. 7. 27.