Language/GO

· Language/GO
슬라이스 슬라이스란 Go언어에서 제공하는 동적배열이다. 동적배열이란 자동으로 배열 크기를 증가시키는 자료구조이다. 슬라이싱 기능을 이용해 배열의 일부를 나타내는 슬라이스를 만들 수 있다. 슬라이스 선언 var (변수명) [](자료형) 배열과 비슷하지만, 배열과 달리 배열 요소 최대 개수를 적지 않는다. 슬라이스를 초기화하지 않으면 길이가 0인 슬라이스가 만들어진다. 슬라이스 길이를 초과해 접근하면 런타임 에러가 발생한다. 슬라이스에 대한 인덱싱은 배열과 동일하다. package main import "fmt" func main() { var slice []int fmt.Println(slice[1]) } /* /private/var/folders/bv/hfxy36vd6_5f_4959zpp0lp40000g..
· Language/GO
개요 Go언어는 클래스개념이 존재하지 않는다. 대신 구조체를 클래스 같이 사용하고, 메소드를 구조체 밖에 선언하는 형태로 사용한다.이 외 특징으로는 OOP특성중 하나인 상속성(inheritance)를 지원하지 않고, 인터페이스(interface)를 지원한다. 우선 이 포스트에서는 구조체, 메소드에 대해서 알아보자 구조체 구조체 기본 메소드를 알기 전에 구조체를 알아야 한다. C언어를 했다면 구조체를 접했을 것이다. 구조체는 여러 필드를 묶어서 작성한다. 배열이 같은 타입 값들을 변수 하나로 묶어주었다면, 구조체는 여러 타입의 값들을 변수 하나로 묶어주는 기능을 한다. 기본적인 선언은 아래와 같다. type (type name) struct{ (field name) (field value type) } 예..
· Language/GO
배열 선언 방법 var t [5]float64 var 변수명 [요소개수]타입 형태로 선언하면 된다. 배열 초기화를 위해서는 아래와 같은 형태로 초기화하면된다. 또한 배열의 indexing은 일반적인 다른 언어와 동일하다(배열[index]) var t [5]float64 = [5]float64{24.0, 25.9, 27.8, 26.9, 26.2} package main import "fmt" func main() { var t [5]float64 = [5]float64{24.0, 25.9, 27.8, 26.9, 26.2} for i := 0; i < len(t); i++ { fmt.Println(t[i]) } } 배열 요소의 개수를 '...'를 이용해 생략할 수 도 있다. 이때 정해지는 배열 요소 개수는 ..
· Language/GO
GO의 함수 선언하기 // func (함수명)(매개변수)(반환타입) func Add(a int, b int) int { } 함수 선언시 주의할점 두가지는 아래와 같다 함수명 첫 글자가 대문자이면 함수는 패키지 외부로 공개된다 반환값이 없는경우(void) 비워둔다 멀티 반환함수 함수는 값을 여러개 반환할 수 있다. 반환값이 여럿일 경우 반환타입들을 소괄호로 묶어 표현한다. package main import "fmt" // 함수명 첫글자가 대문자이므로 패키지 외부로 공개된다. func Divide(a, b int) (int, bool) { if b == 0 { return 0, false } return a / b, true } func main() { c, success := Divide(9, 3) fm..
· Language/GO
표준 입출력 프로그램과 사용자는 입력 / 출력 을 통해 상호작용을 한다 이는 운영체제가 제공하는 표준 입출력스트림(Standard I/O)를 통해 이루어 진다. Go언어에서는 fmt 패키지를 이용해서 처리할 수 있다. 표준 출력 3가지 표준 출력에는 총 3가지 함수가 있다. Print() : 함수 입력값들을 출력한다 Println() : 함수 입력값들을 출력하고 개행(\n)한다 Printf() : format에 맞도록 입력값을 출력한다. package main import "fmt" func main() { var a int = 10 b := 20 var f float64 = 327999.8297 fmt.Println("a : ", a) fmt.Print("b : ", b) fmt.Printf("a : ..
· Language/GO
패키지 패키지는 Go언어에서 코드를 묶는 가장 큰 단위이다. main 패키지 main패키지는 프로그램 시작점을 포함한 패키지이다. 운영체제는 프로그램을 실행하기 위해 프로그램을 메모리에 옮기고(이러한 작업을 load라고한다) 한줄한줄 시작하게 된다. 시작하는 점이 main()함수가 되는것이다. 이외 패키지 하나의 프로그램은 main패키지 이외 다른 패키지를 가질 수 있다.(장고가 프로젝트 디렉토리 이외에 여러가지 애플리케이션을 가질수 있는것과 비슷) 내장 패키지도 있지만, 오픈 소스로 공개된 여러 패키지와 유료 패키지 등 가져다가 사용할 수 있는 패키지도 많다. 패키지를 검색하려면 아래 두가지 방법을 사용하면 된다 표준 패키지 : https://pkg.go.dev/std 개발자들이 많이 사용하는 패키지(..
· Language/GO
변수 변수는 값을 저장하는 메모리 공간을 가리키는 이름이다. Go에서 변수 선언은 아래와 같은 형태로 선언한다 var (변수명) (자료형) = (초기화값) 변수의 4가지 속성 이름 : 프로그래머는 이름을 통해 값이 저장된 멤리 공간에 쉽게 접근이 가능하다 값 : 변수가 가리키는 메모리 공간에 저장된 값이다 주소 : 변수가 저장된 메모리 공간의 시작 주소를 말한다. 변수 이름이 메모리 시작 주소인 것이다. 타입 : 변수값의 형태를 말한다. 정수타입, 실수타입, 문자열타입 등 다양한 타입이 있다. 대입연산자는 다른 프로그래밍 언어와 동일하게 '='이다. 그리고 Go언어의 자료형 종류에는 아래 링크를 참조하자 https://hcnam.tistory.com/9 [GoLang] 자료형, 변수, 상수 자료형 Go ..
· Language/GO
GO 언어가 실행되기 까지 GO언어는 우선 강타입을 가지는 정적언어이다. 기본적으로 컴파일을 가지고 있으며, 타입 검사에 있어 엄격한 언어이다. GO언어가 실행되기 까지의 과정은 아래와 같다. 폴더 생성 .go파일 생성 및 작성 Go모듈 빌드 빌드 실행 폴더 생성 GO언어에서 모든 코드는 '패키지 단위'로 작성된다. 같은 폴더에 속한 .go파일은 모두 같은 패키지에 포함되고, 패키지 명으로 폴더명을 사용한다. .go파일 생성 및 작성 Go언어의 코드는 .go라는 확장자로 끝나야 한다. Go모듈 생성 1.16버전부터 모든 Go코드는 빌드 전에 모듈을 생성해야한다. go mod init (프로젝트 / 모듈명) 명령어를 이용해 모듈을 생성해 준다. 모듈을 생성하면 go.mod라는 파일이 생성되는데, 이 파일에..
· Language/GO
* 모든 설명은 M1맥북 기준으로 설명이 이루어집니다. 개발환경 구축하기 GO언어 개발환경을 구축해봅시다. https://go.dev/dl/ Downloads - The Go Programming Language Downloads After downloading a binary release suitable for your system, please follow the installation instructions. If you are building from source, follow the source installation instructions. See the release history for more information about Go releases go.dev 이곳을 들어가 최신 버전의 ..
Hoplin
'Language/GO' 카테고리의 글 목록