먼저 GO 언어는 어떻게 탄생 되었을까?로버트 그리즈머, 롭 파이크, 켄 톰프슨이 인베르노 분산 운영체제 관련 작업 도중 C++ 에 대한 불편함들을 발견하게 되고, 이 공통적인 문제들을 해결하기 위해 새로운 프로그램을 설계하여 만든 것이 GO 이다.문법이 간단하여 배우
고랭은 gofmt 이란 도구를 통해서 쉽게 표준 포맷팅(들여쓰기, 수직정렬, 유지, 주석)을 재포맷팅하여 소스를 저장할 수 있다.예를 들어 다음과 같은 소스를 확인해보자.파일의 내용을 표준 포맷팅으로 출력하여 보기위해 cmd 에서 포맷팅한 결과를 확인해보자.gofmt
패키지 모든 GO 프로그램은 패키지로 이루어져있음. 프로그램은 main 패키지에서 실행된다. 1. Import 패키지 사용은 import "패키지명" 으로 사용할 수 있다. 예를 들어 import "fmt" 는 package fmt 문으로 시작되는 파일들로 구성
For, If, Switch 에 대하여 알아보자.GO 는 while 과 do-while 은 배제하여 for 반복문이라는 하나의 반복 구조만을 가진다.기본적으로 for 반복문에 세미콜론을 이용해 구별되는 세 가지 요소를 갖는다.초기화 구문은 짧은 변수 선언이 관례이며,
포인터 ( Pointer ) GO 는 포인터를 지원하며 포인터는 값의 메모리 주소를 가진다. *T 타입은 T 값을 가리키는 포인터이다. 이것의 zero value 는 nil 이다. & 연산자는 이것의 피연산자에 대한 포인터를 생성한다. * 연산자는 포인터가 가리
GO 는 클래스를 가지지 않는다.하지만 이와 같은 타입의 메소드를 정의할 수 있다.그 함수는 특별한 receiver 인자가 있는 함수이다.이 리시버 는 func 키워드와 메소드 이름 사이의 자체 인수 목록에 나타난다.아래 예제에서 Abs 메소드엔 v 라는 이름의 Ver
고루틴 gorutine 은 GO 런타임에 의해 관리되는 경량 쓰레드 이다. >go f(x, y, z) 새로운 gorutine 을 시작한다. >f(x, y, z) f 와 x, y, z 의 평가는 현재의 gorutine 에서 일어나고, f 의 실행은 새로운 goru
패키지 fmt 은 C 의 printf 및 scanf 와 유사한 기능으로 포맷된 입출력을 구현하는 기능을 담당한다.C 에서 파생되었지만 더 간단하다고 한다.다음과 같은 구조체가 존재한다고 가정한다.위 구조체 Test 를 출력하면 다음과 같은 결과가 나타난다.다음과 같이
errors 패키지 errors 는 오류를 조작하는 기능을 구현한다. New 함수는 내용만으로 문자 메시지인 오류를 만든다. Unwrap , Is , As 기능은 다른 오류를 래핑할 수 있는 오류에 대해 작동한다. 유형에 메소드가 있다면 오류가 다른 오류를 래핑한
strconv strconv 패키지는 기본 데이터 타입을 문자열로 변환해준다. 숫자 변환은 가장 일반적으로 Atoi(string to int) 및 itoa(int to string) 이다. 각 기본 데이터 타입은 다음과 같이 변환할 수 있다. 타입 변환은 가장
strings 패키지는 UTF-8 로 인코딩된 문자열을 조작하는 함수를 구현한다.GO 의 UTF-8 은 링크텍스트 에서 확인 가능func Compare(a, b string) int두 문자열을 사전 식으로 비교하여 a == b 이면 0, a < b 이면 -1 ,
bytes bytes 패키지는 바이트 슬라이스를 조작하기 위한 함수들을 구현하고 있다. 문자열 패키지와 유사한 기능이 많다. 상수 >const MinRead = 512 MinRead 는 Buffer.ReadFrom 에 의해 Read 호출에 전달된 슬라이스의 최
unicode unicode 패키지는 유니코드 포인트의 일부 속성을 테스트하기위한 데이터와 함수를 제공한다. 상수 케이스 매핑을 위해 CaseRanges 내부의 델타 배열에 대한 인덱스 CaseRange 의 델타 필드가 UpperLower 이면 이 CaseRan
math 는 기본 상수와 수학 함수들을 제공한다.상수값 자세히 보기x 의 절대값을 반환x 의 아크 코사인을 라디안으로 반환x 의 역 쌍곡 코사인을 반환x 의 아크 사인을 라디안으로 반환x 의 역 쌍곡 사인을 반환x 의 아크 탄젠트를 반환반환 값의 사분면을 결정하기 위해
math/big 패키지 big 은 임의 정밀도 산수(큰 숫자)를 구현한다. 다음의 숫자 유형을 지원해준다. Int, Rat 또는 Float 의 제로 값은 0에 해당한다. 또는 다음과 같은 팩토리 함수를 사용하여 새 값을 할당하고 초기화할 수 있다. func
bufio bufio 는 버퍼링된 I/O 를 구현한다. io.Reader 또는 io.Writer 객체를 래핑하여 인터페이스를 구현하지만 버퍼링 및 텍스트 I/O 에 대한 도움을 제공하는 다른 개체를 만든다. 상수 변수 다음은 특수한 감시 오류 값이다. 오류와
text/scanner scanner 는 스캐너와 인코딩된 UTF-8 텍스트에 대한 토큰나이저를 제공한다. 소스를 제공하는 io.Reader 가 필요하며 Scan 함수에 대한 반복 호출을 통해 토큰화할 수 있다. 기존 도구와 호환성을 위해서 NUL 문자는 허용되지
상호 배제 잠금과 같은 기본적인 동기화 기본 요소를 제공해준다.Once 및 WaitGroup 유형을 제외하고 대부분이 저수준 라이브러리 루틴에서 사용하기 위한 것이다.높은 수준의 동기화는 채널과 통신을 더 잘 수행될 수 있다.Cond 는 이벤트 발생을 기다리거나 알리는