비단 go 언어 뿐만 아니라 모든 프로그래밍 언어에서 제일 먼저 입력해보는 것은 "hello world" 일 것이다.
그래서 go를 시작했기 때문에 go로도 hello world를 작성해보고자 한다.
우선 go파일을 만들고 함수를 하나 만들 것이다.
package greetings
import "fmt"
// Hello returns a greeting for the named person.
func Hello(name string) string {
// Return a greeting that embeds the name in a message.
message := fmt.Sprintf("Hi, %v. Welcome!", name)
return message
}
(위의 코드는 나의 사랑 고랭 공식 페이지에 있는 예시이다)
위의 예시에서 보면 java에 익숙한 나에게 뭔가 거슬리는 부분이 보인다.
바로 자료형의 위치이다.
자바의 경우 자료형이 앞에 선언되는 반면, 고랭은 뒤에 선언된다.
이런 식으로 이름이 먼저, 자료형이 뒤에 온다.
나머지는 타 언어들과 유사하다. 매개변수가 있고, 리턴타입이 있고.
다만 리턴 타입이 void인 경우(리턴 값이 없는 경우) 가장 뒤의 리턴타입을 공백으로 두면 된다.
또한 고랭에는 독자적인 연산자가 존재하는데 바로 := 이다.
해당 연산자는 생성과 초기화를 동시에 해주는 연산자인데
다음 코드를
var message string
message = fmt.Sprintf("Hi, %v. Welcome!", name)
아래와 같이 줄여줄 수 있다.
message := fmt.Sprintf("Hi, %v. Welcome!", name)
+)
예시코드에서 사용되는 fmt 패키지는 기본적인 출력과 입력 포맷에 관련된 기능을 제공하는 페키지이다.
해당 패키지는 포맷 템플릿을 이해하면 더욱 잘 쓸수 있는데, 기본적인 것들은 자바 String의 format과 거의 유사하지만
자바에는 없는 포맷이 있는게 그것이 %v 이다.
기본적으로 사용하는 정수형, 문자형등 외에 구조체 인스턴스를 담을수 있는 포맷으로
정수형 문자형의 값들도 물론 %v를 사용할 수 있다.
더욱 자세한 설명 : https://gobyexample.com/string-formatting
Go by Example: String Formatting
Go offers excellent support for string formatting in the printf tradition. Here are some examples of common string formatting tasks. package main import ( "fmt" "os" ) type point struct { x, y int } func main() { Go offers several printing “verbs” desi
gobyexample.com
++)
추가로 지난번 모듈 내용에 빠졌던 것이 있는데 바로 모듈 명령어에 관한 것이다.
Go Module Commands
- go mod init [module-name]
명령어의 이름에서도 느껴지듯이 모듈을 처음 사용할때 사용한다. module-name은 보통 github.com/jay/hello 포멧을 취한다. - go get [module-name]
모듈을 다운로드하는 명령어. - go mod tidy
소스 코드를 확인해서 import되지 않는 모듈들을 자동으로 go.mod 파일에서 삭제하고 import되었지만 실제 모듈이 다운안된 경우는 go.mod파일에 추가해준다. - go mod vendor
Module을 이용하면 module 들을 project 밑에 저장하지 않고, GOPATH에 저장하게 된다. 그러나 자신이 이용하던 모듈들을 repo에 넣고 싶을 경우가 있다. 자동으로 변경될수 있는 모듈들을 고정시키고 싶을때 말이다. 물론 버젼을 강제 지정할수도 있지만, 그 패지키 자체를 가지고 있는것도 쉬운 방법. 따라서 이 명령어를 실행시키면 사용하는 모듈들을 자신의 repo 아래 vendor폴더에 복사를 하게 된다.
출처: https://jhouse0317.tistory.com/148 [Happy and Lovely family:티스토리]
새로운 모듈을 나의 go 파일에 추가할 경우에는 꼭 go mod tidy를 해줘야 해당 모듈이 정상적으로 소스코드 내에서 사용될 수 있다!!
'개인공부 > language' 카테고리의 다른 글
[GO] 에러 핸들링 방법 (1) | 2024.11.25 |
---|---|
[GO] 로컬 패키지 호출 방법 (0) | 2024.11.19 |
[GO] 모듈과 패키지 (0) | 2024.11.05 |
[JAVA] ArrayList가 비어있는지 확인 하기 (0) | 2024.02.27 |
[C언어] 포인터 개념 (0) | 2022.05.30 |