일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 한빛미디어
- SQL
- 블로그
- Tistory
- 월간결산
- 서평단
- 서평
- tensorflow
- 파이썬
- 시각화
- 리눅스
- MySQL
- 한빛미디어서평단
- MATLAB
- Google Analytics
- Linux
- Visualization
- Ga
- 딥러닝
- 매틀랩
- matplotlib
- 파이썬 시각화
- Pandas
- Blog
- 통계학
- python visualization
- 티스토리
- 텐서플로
- 독후감
- Python
- Today
- Total
목록go (12)
pbj0812의 코딩 일기
0. 목표 - struct 사용법 숙지 1. 코드 - 함수 선언 이전에 struct 선언 - name :, age : 이런것들은 생략 가능(생략시 코드 헷갈릴 가능성 존재) package main import "fmt" type person struct { name string age int food []string } //start point func main() { food := []string{"a", "b"} me := person{name: "pbj", age: 18, food: food} fmt.Println(me) fmt.Println(me.name) } 2. 결과 {pbj 18 [a b]} pbj 3. 참고 - 쉽고 빠른 Go 시작하기(노마드코더)
0. 목표 - map 사용법 숙지 1. 코드 - map[key 타입]value 타입{"key값" : "value값"} - value를 string으로 지정했으므로 다 string 형태로 입력 => int 등과 섞어 쓰기 위해서는 struct 구조 필요 package main import "fmt" //start point func main() { me := map[string]string{"name": "pbj", "age": "32"} for key, value := range me { fmt.Println(key, value) } } 2. 결과 name pbj age 32 3. 참고 - 쉽고 빠른 Go 시작하기(노마드코더)
0. 목표 - array, slice 사용 숙지 1. 코드 - []안에 숫자를 넣으면 array, 없으면 slice - append 는 return의 형태이기에 앞에 변수명을 입력하지 않으면 값이 변하지 않음 package main import "fmt" //start point func main() { names := []string{"a", "b", "c"} names = append(names, "d") fmt.Println(names) } 2. 결과 [a b c d] 3. 참고 - 쉽고 빠른 Go 시작하기(노마드코더)
0. 목표 - 포인터 사용법 숙지 1. 코드 - b := &a => b에 a의 메모리 주소를 저장한다 => b가 a를 추적 - *b = 123 => b의 값을 123으로 변경 => a도 같이 변경 package main import "fmt" //start point func main() { a := 2 b := &a *b = 123 fmt.Println(b) fmt.Println(a) } 2. 결과 0xc0000120a0 123 3. 참고 - 쉽고 빠른 Go 시작하기(노마드코더)
0. 목표 - switch 문 사용 1. 코드 - case 안에는 조건문도 사용 가능 ex) case koreaAge < 10 package main import "fmt" func switchTest(age int) bool { switch koreanAge := age + 2; koreanAge { case 10: return false case 18: return true } return false } //start point func main() { fmt.Println(switchTest(18)) } 2. 결과 - false 3. 참고 - 쉽고 빠른 Go 시작하기(노마드코더)
0. 목표 - 조건문 사용 1. 코드 - if else에서 return 값이 true / false 일 경우에는 else 구문은 생략 가능 - if koreanAge := age + 2; 이렇게 if 안에 변수를 입력하는 것을 variable expression if 구문 이전에 정의해도 되지만, 이렇게 사용할 경우 해당 변수가 해당 조건문에 사용된다는 것을 빠르게 인지 가능 package main import "fmt" func ifTest(age int) bool { if koreanAge := age + 2; koreanAge < 18 { return false } return true } //start point func main() { fmt.Println(ifTest(18)) } 2. 결과 -..
0. 목표 - 반복문 작성 1. 코드 1) range 사용 - 두 개의 return을 주며, 첫 번째 값에는 index를 반환 => 생략하기 위해서는 _로 대체 2) for 사용 package main import "fmt" func superAdd(numbers ...int) int { // range returns index for index, number := range numbers { fmt.Println(index, number) } return 1 } func superAdd2(numbers ...int) int { for i := 0; i < len(numbers); i++ { fmt.Println(numbers[i]) } return 1 } //start point func main() ..
0. 목표 - Go 의 function 기능 숙지 1. 코드 1) mutlply - input, output 에는 타입을 지정해줘야 함(int) - 여러개의 return 사용 가능 2) repeat - 여러개의 input을 넣기 위해서는 함수 생성시 input의 타입 앞에 ...을 붙여줌 3) lendAndUpper - 함수 생성시 output의 자리에 변수 명 입력시 return 뒤에 값을 입력하지 않아도 됨(naked return) - defer 사용시 함수 종료 후에 실행 package main import ( "fmt" "strings" ) // 1 multiple return func multiply(a int, b int) (int, int) { return a * b, a * a * b } ..
1. 코드 작성 1) const 는 상수를 나타내며(변경 불가), var 는 변수를 지정 2) 변수명 뒤에 타입을 붙여 나타냄 3) := 를 쓰면 뒤의 결과에 따라 알아서 타입을 지정 해줌 package main import ( "fmt" ) //start point func main() { // 상수 const name string = "pbj" // 변수 var name2 = "abc" name2 = "abc2" // 타입 자동화 name3 := "bbc" name3 = "bbc2" fmt.Println(name3) fmt.Println(name2) } 2. 참고 - Go 강의(노마드코더)
0. 목표 - 패키지 및 함수 생성 이후 main.go에서 import 1. 코드 작성 1) something.go - something 폴더 생성 이후 something.go 생성 - 이때, sayBye는 첫글자를 소문자, SayHello는 첫글자를 대문자로 작성 package something import "fmt" func sayBye() { fmt.Println("Bye") } func SayHello() { fmt.Println("Hello") } 2) main.go - 여기서 something.sayBye는 호출되지 않음 => 첫 글자가 소문자일 경우에는 private 함수 package main import ( "fmt" "github.com/pbj0812/learngo/something.g..