Go는 최근에 많이 언급되고 있는 프로그래밍 언어 중 한 종류이다.
사실 Go는 만들어진지는 10년이 조금 넘은 프로그래밍 언어라고 한다.
남들보다 늦게 Go를 알게 된 것이 후회가 된다...
내가 공부한 Go란?
Go의 개발방향은 "간단하고 간결한 직관적인 언어" + "이해하기 쉬운 코드" 라고한다.
예시 코드와 함께 어떤 느낌인지 느껴보자.
package main
import "fmt"
func main() {
var dan int
fmt.Scanln(&dan)
for i:= 1;i<=9;i++ {
fmt.Printf("%d X %d = %d\n",dan,i,dan*i)
}
}
*위 코드를 작성하다가 생각난 건데, 티스토리에서 제공하는 코드블럭은 tab이 스페이스바 4칸으로 설정이 안 되어있어서 너무 불편하다. 다른 건 다 편한데..
프로그래밍 공부에서 가장 기본적인 예제 "구구단" 코드이다.
C와 유사하면서도 다른 문법들은 차차 블로그에 정리해 나갈 것인데, 이 포스트에서 언급하고 싶은 내용은 중괄호이다.
내 깃허브에 있는 코드들을 살펴보면 아래의 코드처럼 중괄호를 통일하지 않고 사용하고 있었다.
#1번
for(i = 0; i < 10; i++){
blabla;
}
#2번
for(i = 0; i < 10; i++)
{
blabla;
}
Go는 신기하게도 1번 스타일이 아니면 컴파일 오류가 발생한다.
"해하기 쉬운 코드"를 위한 제약이라는 생각이 든다.
덕분에 Go를 공부하면서 내 안 좋은 코딩 습관들이 고쳐지는 것 같다.
위와 같은 사소하지만 생각보다 까다로운 제약만 잘 지켜주면
Go는 정말 강력하고 가시성 좋은 코드가 될 것이다.
Go의 특징
Go언어의 특징
1. 정적타입 : 자료형에 형이 정해져 있음
2. 강타입 : 자료형 변환(타임 캐스팅)이 항상 명시되어야 함
3. 안전성 : 타입 안전성과 메모리 안전성
4. 병행성 : 스레드를 한 단계 더 추상화한 '고루틴'이라는 개념 사용
5. 가비지 컬렉션 : 결과물에 go runtime이 내장되는데 go run time이 메모리를 핸들링
6. 컴파일 언어 : 인터프리터 언어가 아니지만 근접한 수준의 빠른 컴파일
7. 포인터는 존재, 하지만 포인터 연산은 없음
Go언어에 없는 것들
1. 클래스
2. 상속
3. 생성자
4. final
5. 제네릭
- "바로 실행 해보면서 배우는 Go Lang" 강의를 들으며 공부 중이며, 백문이 불여일견이라 생각하여 다 공부한 내용은 아니지만 익숙해지기 위해 그대로 타이핑 한 내용.
'Computer_Language > GO' 카테고리의 다른 글
[Go] 5. Go(golang)의 반복문 (0) | 2019.09.23 |
---|---|
[Go] 4. Go(golang)의 자료형과 변수 선언 (0) | 2019.09.11 |
[Go] 3. Go(Golang)의 입력 함수 (scan) (0) | 2019.08.31 |
[Go] 2. Go(Golang)의 출력 함수 (print) (0) | 2019.08.30 |
[Go] Go(Golang) 윈도우 개발 환경 구축하기 (0) | 2019.08.27 |