본문 바로가기

go5

Golang (Go언어) 슬라이스(Slice) 2/2 Tucker의 Go 언어 프로그래밍 책과 유튜브를 통해 학습 중입니다. * 흔히 하는 실수package mainimport "fmt"func addNum(slice []int) { slice = append(slice, 4)}func main() { slice := []int{1, 2, 3} addNum(slice) fmt.Println(slice)}// 결과[1 2 3] - slice  := []int{1, 2, 3}을 addNum의 인자를 새로 넣었는데, 이는 main의 slice와 다른 인스턴스임- 호출 될 때 main slice 값으로 Num slice에 type size만큼 복사해서 main과 동일함. (포인터, len, cap 동일)- main slice와 Num slice는 메모리 주소가 다.. 2024. 11. 20.
Golang (Go언어) 슬라이스(Slice) 1/2 Tucker의 Go 언어 프로그래밍 책과 유튜브를 통해 학습 중입니다. ★슬라이스(Slice)★- Go에서 제공하는 동적 배열 타입 → Go에서 제공하는 배열을 가리키는 포인터 타입→ 동적(Dynamic), 프로그램 실행 도중에 결정(실행도중에 바뀔 수 있는 값)    정적(Static), 코드를 기계어로 바꿀 때 결정(실행도중에 절대 바뀌지 않는 값)var slice []int// var  - 타입의 [](가운데) 사이즈를 적지 않고 뒤에 요소 타입을 적음(ex. int, str 등) package mainimport "fmt"func main() { var slice []int if len(slice) == 0 { fmt.Println("slice is empty", slice) } slice[1.. 2024. 11. 19.
Golang (Go언어) 패키지(Package) Tucker의 Go 언어 프로그래밍 책과 유튜브를 통해 학습 중입니다.  패키지(Package)- Go 언어에서 코드를 묶는 가장 큰 단위- 다른 언어에서는 네임스페이스(namespace)라는 키워드를 사용해서 코드 영역을 분리하기도 하지만,    Go언어에서는 네임스페이스를 지원하지 않고 패키지를 사용함.- 프로그램은 main 패키지(필수 요소) 하나와 여러 외부 패키지(선택 요소)로 구성됨. main 패키지- 특별한 패키지 프로그램 시작점을 포함한 패키지로 프로그램 시작점이란 main() 함수를 의미 그 외 패키지- 한 프로그램은 main 패키지 외에 다수의 다른 패키지를 포함할 수 있음- 표준 입출력은 "fmt" 패키지를, 암호화 기능은 "crypto" 패키지를, 네트워크 기능은 "net" 패키지를.. 2024. 11. 9.
Golang (Go언어) 문자열(String) Tucker의 Go 언어 프로그래밍 책과 유튜브를 통해 학습 중입니다.  문자열- 문자 집합으로, 타입명은 string- 문자열은 큰따옴표(")나 백쿼트(`)로 묶어서 표시(그레이브(grave)라고도 부름)- 백쿼트로 문자열을 묶으면 문자열 안의 특수 문자가 일반 문자처럼 처리 됨package mainimport "fmt"func main() { poet1 := "죽는 날까지 하늘을 우러러\n 한 점 부끄럼이 없기를,\n잎새에 이는 바람에도\n나는 괴로워했다.\n" poet2 := `죽는 날까지 하늘을 우러러한 점 부끄럼이 없기를,잎새에 이는 바람에도 나는 괴로워했다.` fmt.Println(poet1) fmt.Println(poet2)}// 결과죽는 날까지 하늘을 우러러 한 점 부끄럼이 없기를,잎새에 .. 2024. 11. 8.
Golang (Go언어) 포인터(Pointer) Tucker의 Go 언어 프로그래밍 책과 유튜브를 통해 학습 중입니다.  포인터(Pointer)- 메모리 주소를 값으로 갖는 타입- 포인터도 값을 가지고, Type이라 변수를 만들 수 있음 (값을 받는데 값이 메모리 주소인 것) ✓ var a int라는 변수를 선언하면, 컴퓨터는 메모리에 변수를 저장할 공간(8byte)을 만듦.    공간이 시작하는 주소(ex.100번지)를 a라는 변수가 가리키게(point)함.     a = 10 이라고 하면 a라는 공간에 10을 복사해라 라는 의미.→ a라는 공간은 a가 가르키고 있는 메모리 시작주소 값(ex.100)과 type을 알면 사이즈를 알 수 있고, 해당 공간에 10이라는 값을 복사하는 것 * 모든 변수는 다 메모리 공간을 가지고 있고, 메모리 공간은 시작 .. 2024. 11. 7.