본문 바로가기

CS/Go10

[Go programming] 함수를 선언하고 값 반환하기 Go 언어에서 함수를 구성하는 요소는 크게 네가지 입니다. 1. 이름 2. 파라미터 목록 3. 결과목록 4. 본문 코드 내에서 위 요소들은 아래와 같은 형태를 띄게 됩니다. func 함수명 (파라미터 목록) (결과목록) { 본문 } 각 요소에 대해 간단히 설명하고 예제를 구현해 보려 합니다. 이름 이름은 함수의 이름을 의미합니다. 구현하는 함수를 호출할 때 어떤 이름으로 호출될지를 결정합니다. 프로그래밍을 하면서 변수의 이름과 함수의 이름은 다른 개발자가 이해하기 쉽게 직관적으로 작성될 수 있도록 노력이 필요합니다. 파라미터 목록 파라미터 목록은 함수 파라미터의 이름과 타입을 지정합니다. 이 인자는 호출하는 곳에서 전달하는 값이나 인자를 받는 지역변수를 의미합니다. 결과목록 결과목록은 함수가 반환하는 값.. 2023. 11. 12.
Go programming 복합 타입 - 슬라이스 에 대하여 Go programming 복합 타입 - 배열 에 대하여 오늘은 go 언어의 복합 타입에 대해 포스팅을 남깁니다. 복합타입 기본타입을 다양한 방법으로 결합하여 생성한 타입 복합타입의 유형 복합타입의 유형은 배열, 슬라이스, 맵, 구조체 이렇게 4가 armin.tistory.com 이전 글에 이어서 오늘은 슬라이스에 대해 설명합니다. 슬라이스 슬라이스는 모든 원소가 같은 타입인 가변길이 시퀀스입니다. 슬라이스 타입은 원소가 T 타입인 경우 []T 태로 정의하며, 이는 크기가 없는 배열 타입처럼 보이기도 합니다 슬라이스 타입의 선언과 활용 e := []int{1, 2, 3} fmt.Println(e) 출력 [1 2 3] 특징 1. 모든 원소의 타입이 같고, 길이가 가변적 입니다. 2. 슬라이스는 배열과 달리.. 2023. 7. 29.
Go programming 복합 타입 - 배열 에 대하여 오늘은 go 언어의 복합 타입에 대해 포스팅을 남깁니다. 복합타입 기본타입을 다양한 방법으로 결합하여 생성한 타입 복합타입의 유형 복합타입의 유형은 배열, 슬라이스, 맵, 구조체 이렇게 4가지가 있습니다. 특징 복합타입 유형 별 특징은 다음과 같습니다. 다양한 특징이 있지만 상세한 특징은 각 타입별 설명에 정리 합니다. 고정크기 배열, 구조체는 집합타입으로 크기가 고정되어 있습니다. 지정 된 사이즈 이상의 데이터를 할당이 불가능합니다. 동적크기 슬라이스, 맵은 동적 데이터 구조입니다. 값을 추가할 때 마다 커질 수 있습니다. 간단한 특징은 이정도로 설명하고 타입별 세부특징을 알아보겠습니다. 배열 배열은 0개 이상으로 이뤄진 고정길이 시퀀스 입니다. 지정된 특정 타입으로만 원소를 이루고 있으며, 길이를 고.. 2023. 7. 29.
go programming - byte array 숫자에 콤마를 붙이는 방법 오늘은 go programming 연습삼아 아래의 예제 코드를 만들어 보았습니다. string 이 아닌 byte array 에 숫자를 할당해 두고 1,000 단위로 콤마를 붙여주는 코드입니다. package main import "fmt" func comma(s []byte) []byte { rByteArray := make([]byte, len(s)+len(s)/3) j := 0 for i := 0; i < len(s); i++ { if i != 0 && i%3 == 0 { rByteArray[j] = ',' j = j + 1 rByteArray[j] = s[i] j = j + 1 continue } rByteArray[j] = s[i] j = j + 1 } return rByteArray } func.. 2023. 7. 23.
[Go programming] Requesting http get method to an url from an argument 사진: Unsplash의Sergey Zolkin Today, I made a test program to get response by requesting http get method. Here's the sample code. package main import ( "fmt" "io/ioutil" "net/http" "os" ) func main() { for _, url := range os.Args[1:] { // Request http get with given url from the first argument. resp, err := http.Get(url) if err != nil { fmt.Fprintf(os.Stderr, "fetch: %v\n", err) os.Exit(1) } // rea.. 2023. 6. 24.
[Go언어연습] 중복 된 내용이 있는 파일명 리스트를 출력하는 프로그램 사진: Unsplash의Sergi Kabrera 안녕하세요 warehouse입니다. 오늘은 Go 언어를 연습하는 과정에서 만든 프로그램에 대한 코드를 정리해 보았습니다. 아래 코드는 파일 리스트를 인자로 받아 같은 내용을 갖고있는 파일들 리스트를 출력하는 프로그램 입니다. package main import ( "bufio" "fmt" "os" ) func main() { counts := make(map[string]int) m_filename := make(map[string]int) files := os.Args[1:] if len(files) == 0 { countLines(os.Stdin, counts, m_filename) } else { for _, arg := range files { f,.. 2023. 6. 6.
[Go언어] 중복 줄 찾기 프로그램, 입/출력에 활용하는 bufio 패키지 사진: Unsplash의Sergi Kabrera 오늘은 stdin 으로 입력을 받아 중복되는 입력의 카운트를 출력해 주는 프로그램을 작성하였습니다. package main import ( "bufio" "fmt" "os" ) func main() { counts := make(map[string]int) input := bufio.NewScanner(os.Stdin) for input.Scan() { counts[input.Text()]++ if input.Text() == "" { break } } for line, n := range counts { if n > 1 { fmt.Printf("%d\t%s\n", n, line) } } } 코드를 보면서 설명을 드리자면 우선 표준입출력을 받아오기 위해서 .. 2023. 5. 18.
[Go언어기초] go 언어 반복문, for 문 사용하기 [프로그래밍 언어] Go 언어 기초 - 커맨드라인 인수와 os.Args 변수 2023.04.30 - [CS/Go] - [프로그래밍 언어] Go 언어 시작하기, 환경설정 - Hello world [프로그래밍 언어] Go 언어 시작하기, 환경설정 - Hello world 안녕하세요 warehouse 입니다. 최근 프로젝트를 진행하면서 Go armin.tistory.com 커맨드 라인 인수에 이어서 오늘은 반복문에 대해 적어봅니다. for 루프 for 문은 대부분의 프로그래밍 언어에서 사용하는 반복 문 입니다. 다른 언어의 경우 while, do ~ while 등 for 외에 사용되는 반복문이 존재하지만 go 언어에서는 for를 유일하게 사용합니다. go 언어에서는 다양한 반복문을 지원하지는 않지만 for 문.. 2023. 5. 7.
[프로그래밍 언어] Go 언어 기초 - 커맨드라인 인수와 os.Args 변수 2023.04.30 - [CS/Go] - [프로그래밍 언어] Go 언어 시작하기, 환경설정 - Hello world [프로그래밍 언어] Go 언어 시작하기, 환경설정 - Hello world 안녕하세요 warehouse 입니다. 최근 프로젝트를 진행하면서 Go 언어를 접하게 되었습니다. C++, Python 위주로 사용하였으나, 일부 모듈에서 Go 언어의 도입이 필요했기 때문인데요. Go는 이미 꽤나 많 armin.tistory.com 대부분의 프로그램은 입력을 통해 출력을 생성하며 프로그램에서의 입력 데이터는 파일, 네트워크, 키보드 입력, 커맨드라인 인수 등으로 받을 수 있습니다. 이번 포스팅에서는 프로그램에서 받을 수 있는 입력 중 하나인 커맨드 라인 인수에 대해 다뤄보겠습니다. 커맨드라인 인수 한.. 2023. 5. 1.
[프로그래밍 언어] Go 언어 시작하기, 환경설정 - Hello world 안녕하세요 warehouse 입니다. 최근 프로젝트를 진행하면서 Go 언어를 접하게 되었습니다. C++, Python 위주로 사용하였으나, 일부 모듈에서 Go 언어의 도입이 필요했기 때문인데요. Go는 이미 꽤나 많은 프로젝트를 구현하는데 사용되어 왔고 현재 Rust 와 함께 C, C++ 의 뒤를 이을 언어 중 하나로 여겨지는 언어입니다. 이런 두터운 신망을 얻는 언어인 만큼 수많은 레퍼런스들이 온라인에 있다보니 제 포스팅이 새로 시작하는 분들에게 크게 도움이 되지 않을수도 있다는 생각도 듭니다. 허나, 저와 비슷한 흐름과 속도로 학습하시는 분들에게는 나름 읽어볼 만 하지 않을까 라는 생각이 있으며, 거창하게 공부하는 느낌이 아닌 핸드폰으로 쓱쓱 읽어볼 만한 기록을 남기는게 저의 목표입니다. 기록을 남기.. 2023. 4. 30.