C와 비슷하다. 병행성 프로그래밍을 다루기 위해 go
와 select
키워드가 사용됩니다. 새로운 타입은 map
, 유니코드 문자열, 배열 slice
, 그리고 내부 쓰레드 통신을 위한 channel
이 있습니다.
C++이나 Java에 있는 기능들 중 타입 상속, 제너릭, assertions, 메서드 오버로딩, 포인터 연산은 Go에서 포함하고 있지 않습니다.
Go를 이용해 프로그램들이 서로 소통하면서 상태를 공유하는 동시성(concurrency) 프로그램을 쉽게 만들 수 있습니다. 동시성이란 멀티쓰레딩, 병렬 컴퓨팅 뿐 아니라, 비동기성 입출력 또한 포함합니다. 예를 들어, 이벤트 기반 서버와 같이, 데이터베이스나 네트워크 작업과 같이 시간이 많이 걸리는 연산을 하는 동안 프로그램이 다른 일을 하는 것을 말합니다.
Go언어에서 기본으로 제공하는 입출력 함수도 있지만, 그것을 사용하는 것보다는 조금 더 강력한 입출력 기능을 제공하는 fmt 패키지의 사용을 권장합니다