go 7

Go언어 구조체(struct) 편

이번주제는 구조체다. 처음배울때 대학시절 C언어에서 본것으로 기억나는데, 요즘은 어떤지 모르겠다. C언어를 기준으로 설명하자면, 사용법은 비슷하다. 구조체에 변수와 타입을 정해주기만하면 선언이 완료된다. 아래 그림은 구조체를 활용하여 두수의 합을 나타낸다. [ 예 제 ] package main import "fmt" type Number struct { A int B int } func Add(a, b int) int { return a + b } func main() { number := Number{A: 1, B: 2} result := Add(number.A, number.B) fmt.Println(result) }

Programming/Go 2021.02.26

Go언어 리시버(receiver) 편

해당 주제는 리시버다. 설명하기에 앞서, 이번 코드에서는 구조체를 사용하고 있고, 이를 알고 있다는 전제하에 설명한다. 리시버는 특정 객체로부터 해당되는 함수를 정의하는 것이다. 즉 쉽게 말하면 특정 객체만 접근이 가능하다는 것이다. 따라서 아래에 그림에서 명시된 Add함수는 (n Number)리시버를 사용하여 Number 객체만 접근이 가능하도록 하였다. [ 예시 ] package main import "fmt" type Number struct { A int B int } func (n Number) Add(a, b int) int { return a + b } func main() { number := Number{A: 1, B: 2} result := number.Add(number.A, numb..

Programming/Go 2021.02.26

Go언어 예외처리(panic, recover) 편

Go언어에서의 예외처리 사용법은 다른언어들에서 볼 수 있는 tryCatch 구조와는 약간 다르다. 따라서 Go언어에서 이용할수 있는 예외처리 방법을 설명하고자 한다. [panic함수 예제] package main import "fmt" func main() { var a int = 1 if a == 1 { panic("에러") } fmt.Println("hello world") } panic함수 사용법을 정리하면 다음과 같다. 1. panic함수 실행시 프로그램이 종료가 실행된다. 2. panic 실행이후 에러위치를 나타낸다. [panic & recover 예제] 설명 var a의 값에 따라 예외처리를 알아보는 코드이다. 결과를 정리하면 다음과같다. 1. 에러(a가 1일때) 2. 성공(a가 1이 아닐때)..

Programming/Go 2021.02.26

Go언어 "import cycle not allowed" 편

여러 개의 모듈을 사용하여 프로젝트를 하다 보면 "import cycle not allowed" 문구가 나와 당황하게 되었던 적이 있을 것이다. 그러나 원인을 알면 사이클이 왜 안되는지 알 수 있다. 자세한 건 아래 그림과 코드로 설명을 하겠다. [main.go] package main import ( "fmt" "golang/cycle/Firstsub" ) func main() { Firstsub.AddCall() } [Firstsub.go] package Firstsub import ( "fmt" secondsub "golang/cycle/Secondsub" ) func AddCall() { fmt.Println("this is firstSub") secondsub.CallSecondSub() } [..

Programming/Go 2021.02.25

Go언어 [초간단] 명령어 Os.Args 편

Os.Args 명령어를 받는 가장 기본적인 방법이다. 각 매개변수는 일반 변수, 옵션, json 파싱등으로 구성된다. [예시] package main import ( "fmt" "os" ) func main() { fmt.Println(os.Args[0]) // C:\Users\hhh\AppData\Local\Temp\go-build2452782392\b001\exe\main.exe fmt.Println(os.Args[1]) // hi fmt.Println(os.Args[2]) // -mode=programming fmt.Println(os.Args[3]) // {\"name\":\"홍길동\",\"age\":\"20\"} }

Programming/Go 2021.02.24

Go언어 [입문] 반복문 편

오늘 다룰 주제는 Go언어에서의 반복문이다. C, 파이썬, 자바와 같이 특정언어로 반복문을 사용하다보면 while문과 for문을 사용하는 것을 볼 수 있다. 그러나 Go언어에서의 반복문은 while을 지원하지 않고, for만 지원한다. 따라서 Go언어에서 사용되는 for문 작성법을 알아볼 예정이고, 코드로 나타내보고자 한다. Go언어에서의 반복문(for)는 3가지로 나타낼 수 있고 그 예시는 다음과 같다. [예시 1] package main import "fmt" func main() { for i := 0; i < 10; i++ { fmt.Println("hello world") } } [예시 2] package main import "fmt" func main() { i := 0 for i < 10 ..

Programming/Go 2021.02.21