난 정말 최고야 멋있어
golang tutorial 본문
기본적인 구성요소
package 패키지이름 // 보통 디렉터리의 가장 마지막 이름을 적는게 원칙이라고 한다 필수는 아닌듯.. main 패키지로 부터 시작한다
import "임포트할 패키지"
func 함수이름(){
//어쩌고 저쩌고
}
//또 주의할 점으로
// func 함수이름()
// {
// //어쩌고 저쩌고
// }
// 이런식으로 하면 안된다;;
여러개의 패키지를 임포트
import (
"import1"
"import2"
)
// 이런식으로 소괄호안에 집어 넣어서 한번에 임포트 할 수있다
기본 자료형
bool
string
int // (int크기 : int8 int16 int32 int 64)
uint // (uint크기 : ...)
float32 float 64
complex32 complex 64
byte //아스키
rune //유니코드
파라미터
func function0( x , y int){
}
// 일반적인 C나 java 와 다르게 자료형을 뒤에 적는다 파스칼이랑 닮았다
리턴
func function0(x,y){
return x,y
}
// 보통의 다른 언어와 마찬가지로 return 을 이용해서 리턴할 수 있다
// 특이한 점이 있다면 파이썬 처럼 여러개의 인자를 리턴할수도 있다
리턴 타입 지정?
func function0(x , y int)(retval int){
retval = x+y
return // retval 이 반환 됨
}
// 파라미터 다음에 반환형의 타입을 명시적으로 적어줄 수 있다
// return 시 자동으로 정해진 친구들이 반환 됨
변수 선언
var x,y int
// var 키워드를 이용해서 변수 지정
// 파라미터 자료형 명시했던것과 마찬가지로 자료형은 변수 이름 뒤에 붙여준다
// 명시적으로 초기화 하지 않으면 0으로 초기화 된다
변수 초기화
var x,y int = 1,2
// 생성과 즉시 초기화 가능
var a,b,c = "HelloWorld",true,false
// 초기화를 해준다면 자료형을 딱히 안적어줘도 알아서 결정해 준다
짧은 선언 및 초기화
x := 1
// := 연산자를 이용하면 var 키워드를 이용하지 않으면서도 한번에 변수 생성과 초기화를 할 수 있다 타입은 자동 지정
// 함수 안에서만 사용 가능하다 함수밖에서는 사용 불가능
상수
const pi = 3.14
// const 키워드를 이용하여 상수를 선언한다
const (
hello = "helloworld"
booleanvalue = true
)
// 괄호로 감싸 한번에 선언도 가능하다
반복문
for i :=0;i<10;i++{
fmt.Println("HelloWorld")
}
// for 문 밖에 없다.. while 문이 없다;;
// 소괄호는 필요없지만 중괄호는 필요하다
for true{
fmt.Println("Hello")
}
// for문 안에 그냥 조건만 넣을수 있다! 이걸로 while문 대체하는것 같다
for {
fmt.Println("Hello")
}
//조건을 명시하지 않으면 무한 반복이 된다 사실 상 바로 위의 코드와 동치
조건문
if true{
fmt.Println("Hello")
}
// 평범하게 if 문을 사용한다 for 문과 마찬가지로 소괄호는 필요없지만 중괄호는 필요하다
if dosomething; true{
fmt.Println("Hello")
}
// 요렇게 if문 조건 앞에 ; 콜론 을 붙인다면.. ; 앞의 문장을 먼저 실행한 후 조건 비교를 수행한다
// for 문이랑 비슷한 느낌
if condition0{
//dosomething0
}
else if condition1{
//dosomething1
}
else {
//dosomething2
}
// 평범한 if else , else 처럼 사용한다
TBD