GO를 설치한 뒤
GOPATH와 GOROOT를 설정해주어야 한다.
GOROOT는 GO가 설치된 곳이고, GOPATH는 WorkSpace로 사용할 공간이다.
GoWorkSpace에 bin,pkg,src를 만들어준다. source는 src에 들어간다. bin와 pkg는 왜 만들어주어야 하는지 모르겠지만, 일단 만들어주자.
IDE로는 GOLAND를 설치한다.
go는 항상 package가 main이어야 실행된다.
위와 같이 package가 다르게 잡혀있으면 실행되지 않는다.
go는 fmt 모듈을 이용하는데, fmt는 format의 준말이라고 한다.
go 에는 public, private을 지정하는 지정자가 없다. 대신 메소드 이름이 대문자 시작이면 public, 소문자 시작이면 private이다.
extra 모듈의 SayHello() 와 같이 호출할 수 있다.
변수선언은 영어 문법의 어순을 따라간다.
변수 name2는 string이야. 라는 식으로
var name2 string
또한 go는 특이하게 사용되지 않는 변수는 오류를 처리한다.
위의 예시에서 name과 name2의 선언방식은 동일하다. 다만 위의 방식이 훨씬 많이 사용되는 것 같다.
다만 축약형 ( := ) 은 func 함수 안에서만 가능하고, 변수에만 가능하다.
go는 특이하게도, 2개의 값을 return할 수 있다.
함수 parameter에는 데이터 type을 명시해주어야 하고, 우측에 return type역시 명시해주어야 한다.
return variable의 name을 미리 지정해둘 수 있다.
return 명을 적어줄 순 있지만, 안 적어줘도 되니까 안 적어주는게 맞다.
함수 호출이 끝나면 특정 행동을 할 수 있게 지정할 수 있음.
cf)
paramter값을 여러개를 받고 싶다면 ... 을 사용하면 된다.
range는 index와 value를 동시에 return한다.
위와같이 사용해도 된다.
파이썬과 같이 ignore ( _ ) 을 할 수 있다.
if 문 분기문 시작전에 if문을 위한 변수를 선언할 수 있다.
( 변수를 분기문 앞에 설정해놓음 으로써 변수가 어디서 사용될 지를 알려주지 않아도 된다 )
switch에서도 if문과 같이 분기문 앞에 변수를 선언할 수 있다.
switch의 변수가 안으로 들어갈 수도 있다.
go-start 라는 폴더안에 github에 올라간 소스가 있다. 그런데 그대로 clone해서 실행했는데, banking 패키지를 import하지 못했다. 이유를 이리저리 찾아보다가, banking 패키지를 go-start 밖에 선언하니까 import가 됐다.