Go 의 함수에는 'naked return' 이라는 것이 있다. 이것의 의미는 return 키워드에 굳이 반환 할 변수를 명시하지 않아도 됨을 뜻한다. part 1 에서 길이와 영문 대문자 변환 결과를 반환하는 함수를 다시 작성해보자. package main import ( "fmt" "strings" ) func lenAndUpper(name string) (length int, uppercase string) { length = len(name) uppercase = strings.ToUpper(name) return } func main() { totalLength, upper := lenAndUpper("nimkoes") fmt.Println(totalLength, upper) } part 1 의..
프로그래밍 언어/Go
Go 에서 함수는 아주 쉽다. 'func' 키워드를 사용해서 선언한다. 두 수를 전달 받아 곱한 결과를 반환하는 'multiply' 를 작성해보자. package main import "fmt" func multiply(a, b) { return a * b } func main() { fmt.Println(multiply(2, 2)) } 그런데 위와 같이 작성하고 실행하면 많은 오류를 만나게 된다. 그 이유는 Go 도 Java 와 마찬가지로 함수를 선언할 때 전달받을 타입과 반환 타입을 정해줘야 한다. 그래서 다음과 같이 고쳐서 작성해야 한다. package main import "fmt" func multiply(a int, b int) int { return a * b } func main() { f..
Go 에서 상수는 'const' 키워드를 사용해서 선언할 수 있다. const name string = "nimkoes" 특이한게 있다면, 타입을 명시하지 않으면 'untyped' 라는게 붙고, 값을 토대로 추론한 타입도 같이 명시 되었다. 그리고 타입을 명시하면 'untyped' 가 사라진다. 또 다른게 있다면, 타입을 변수의 뒤에 명시한다. 지금까지는 보통 타입을 먼저 쓰고, 그 타입의 값을 담을 변수의 이름을 작성했는데 Go 에서는 그 순서가 반대다. 약간 "문자열 타입의 변수 name 입니다." 라고 하던게 "name 변수 입니다. 근데 이제 string 타입인" 이라고 하는 느낌이다. 변수 선언은 'const' 대신 'var' 을 쓴다. var nickname string = "nickname"..
앞서 Hello World 문자열을 출력하는 코드를 Go로 작성해 보았다. package main import "fmt" func main() { fmt.Println("Hello World!") } fmt 를 직접 import 한 적이 없는데, IDE 에서 알아서 자동으로 추가해 주었다. fmt 는 Go 가 가지고 있는 패키지 중 하나로 formatting 을 위한 package 이다. import 관련해서 javascript 의 경우 function 을 export 해주고 싶은 경우 모듈을 export 하겠다고 명시해 주어야 한다. Go 에서는 function 을 export 해주고 싶다면 function 을 영문자 대문자로 시작하면 된다. 정말 그런지 확인해보기 위해 현재 프로젝트의 최상위에 'so..
Go 를 설치하기 위해 다운로드 사이트에 접속 한다. 'Download Go' 버튼을 클릭한다. OS 별로 설치 파일이 다른데 현재 윈도우 플랫폼을 사용하고 있기 때문에 'Microsoft Windows' 를 클릭 했다. 페이지가 이동 하면서 자동으로 다운로드가 시작 되었다. 다운받은 msi 프로그램을 실행해서 Go를 설치 했다. 강의 에서는 C 루트 디렉토리 하위에 바로 'go' 라는 패키지(폴더)를 만들었는데 설치 프로그램의 기본 경로가 'Program Files' 여서 그냥 냅두기로 했다. 설치가 끝나면 아래와 같이 C:\Program Files\Go 경로 하위에 아래와 같은 것들이 새로 생긴것을 확인할 수 있다. 그리고 강의의 실습을 하기 위해 만들라고 한 폴더들을 만들었다. 강의 내용대로라면, ..