주석
// This is a 주석
/* This is also a 주석 */
변수 선언
* const 변수명 자료형 = 블라블라
- 상수
* var 변수명 자료형 = 블라블라
- 여타 언어와 다르게 변수명과 자료형의 순서가 반대다. 우리나라에서 아반떼 10년 몰다가 일본이나 영국가서 오른쪽 좌석에 핸들 달린 용달차 운전하는 느낌.
* 변수명 := 블라블라
- 자료형 생략할 때 사용
- 사전에 기 선언된 변수는 이렇게 하면 에러 띄운다.
자료형
* 정수, 자연수: int, uint 8,16,32,64
- uintprt: uint 포인터
- byte = int8
- rune = int32 = 유니코드
- int, uint >= 32
- string ~= 8bytes ~= int64 (??)
* 실수, 복소수: float 32,64, complex 64,128
* 부울: bool
* 구조체: struct
type 타입명 struct {
멤버변수명 자료형
}
// 초기화되지 않은 null map은 값 입력이 안되므로 make로 초기화를 해야된다고 한다.
map명 = make(map[key자료형] value자료형)
* 자료형 확인
변수명.(type)
reflect.TypeOf(변수명)
함수 선언 / 호출
* 기본
- variadic의 경우 함수 선언할 때, 점점점이 변수명과 자료형 사이에 들어가야 된다. @_@
- 배열은 당연히 배열인데 ...을 붙여야 하는게 이해가 어렵다.
func 함수명(변수명 자료형) 반환자료형 {
// 블라블라
return [반환 변수명]
}
아무변수명 := 함수명(변수명)
/* 떼거리 변수들 (=variadic) */
func 함수명(변수명 ...자료형) 반환자료형 {
// 블라블라
}
함수명(변수명, 변수명, 변수면, 변수면)
// 또는
변수명 := []int{변수들, 변수들들들}
함수명(배열명...)
* 클로저 ~= 함수로부터 계산되어 반환 받은 값
- 함수 내부에 무기명/익명함수 형태로 사용할 수도 있고, 외부 함수로 선언해서 쓸 수도 있다.
- 반환 받은 값은 계속 유지 또는 반복 실행 시 중첩된다.
연산자: C와 거의 같으므로 생략
조건문
* if 실행시, 병행 실행 가능한 기능이 있던데 당장 쓰지는 않을 것 같으니 생략
/* if */
if 조건 == 값 {
// 블라블라
} else if 다른조건 == 다른값 {
// 블라블라
} else {
// 나머지 조건 블라블라
}
/* switch */
switch 변수명(조건으로 부여된 변수명?) {
case 변수값_1번:
// 블라블라
case 변수값_2번, 변수값_3번 :
// 블라블라
default:
// 블라블라
}
순환문
* break, continue, goto 도 쓸 수 있다고 한다. 이건 나중에...
/* 기본 형식 */
for i := 0; i < 10; i++ {
fmt.Printf("%d 번 인디언 ", i)
}
/* while이 없다. */
for {
fmt.Println("무한 루프데쓰요. ㅋ ")
}
/* range 사용 - 예를 들어 map을 쓰면 아래와 같이 한다. */
WTH := map[string] string{
for idx, value := range WTH {
fmt.Println(idx, value)
}
공부 좀 더하고 수정해야겠다.
끝.
댓글 0