목록분류 전체보기 (110)
SYeonni Study Room

package main import "fmt" func main() { s := []int{2, 3, 5, 7, 11, 13} printSlice(s) // Slice the slice to give it zero length. s = s[:0] printSlice(s) // Extend its length. s = s[:4] printSlice(s) // Drop its first two values. s = s[2:] printSlice(s) } func printSlice(s []int) { fmt.Printf("len=%d cap=%d %v\n", len(s), cap(s), s) } 마지막 cap이 4가 나와 헷갈렸음.. 나뿐만 아니라 다른사람도 헷갈렸음 ㅠㅠ 친절한 답변으로 이해함! https..

상한 또는 하한을 생략하면, 슬라이싱할 때 기본 값을 사용할 수 있습니다. 하한의 경우 기본 값은 0이고, 상한의 경우 슬라이스의 길이입니다. - 슬라이스는 배열과 같지만, 길이가 고정되어 있지 않으며 동적으로 크기가 늘어납니다. 또한 배열과는 달리 레퍼런스 타입

슬라이스 리터럴은 길이가 없는 배열 리터럴와 같습니다. 아래는 배열 리터럴입니다. [3]bool{true, true, false} 이렇게 하면 위와 동일한 배열이 생성되고, 이를 참조하는 슬라이스가 만들어집니다. []bool{true, true, false} package main import "fmt" func main() { q := []int{2, 3, 5, 7, 11, 13} fmt.Println(q) r := []bool{true, false, true, true, false, true} fmt.Println(r) s := []struct { i int b bool }{ {2, true}, {3, false}, {5, true}, {7, true}, {11, false}, {13, true}, ..

슬라이스는 어떤 데이터도 저장할 수 없습니다. 이것은 단지 기본 배열의 한 영역을 나타낼 뿐입니다. 슬라이스의 요소를 변경하면 기본 배열의 해당 요소가 수정됩니다. 동일한 기본 배열을 공유하는 다른 슬라이스는 이러한 변경사항을 볼 수 있습니다. 슬라이스는 배열과 같지만, 길이가 고정되어 있지 않으며 동적으로 크기가 늘어납니다. 또한 배열과는 달리 레퍼런스 타입 그래서 값이 변경

구조체 리터럴은 필드 값을 나열하여 새로 할당된 구조체 값을 나타냅니다. Name: 구문으로 필드의 하위 집합만 나열할 수 있습니다. (명명된 필드의 순서는 무관합니다.) 특별한 접두사 & 은 구조체 값으로 포인터를 반환합니다.

defer문은 자신을 둘러싼 함수가 종료할 때까지 어떠한 함수의 실행을 연기합니다 연기된 호출의 인자는 즉시 평가되지만 그 함수 호출은 자신을 둘러싼 함수가 종료할 때까지 수행되지 않습니다. 위 테스트 코드 확인 시 Num() 함수에 무한루프를 구현해두었고 출력 시 . 점 하나만 출력되게 하였다. 그러고 main에서 defer 키워드를 이용했더니 함수가 종료되지않으니 꼐속 무한루프의 늪에 빠진걸확인함!
package main import ( "fmt" "math/rand" ) func Num(random int) int { random -= rand.Intn(10) return random } func main() { result := Num(rand.Intn(39)) switch { case result > 10: fmt.Println("10보다 작다") case result < 10: fmt.Println("10보다 크다") } fmt.Printf("끝") } c언어와 달리 switch 문에 break 가 없다.