Go's Declaration Syntax ( function, variable, control flow )
Ref : http://blog.golang.org/gos-declaration-syntax
첫문자가 대문자로 시작하면 그 패키지를 사용하는 곳에서 접근할 수 있는 exported Name이 된다고 한다. ( Java에서 접근 제어자 )
기본 자료형
- bool
- string
- int, int8, int16, int32 int64
- uint, uint8 uint16 uint32 uint64 uintptr
- byte // uint8 alias
- rune // int32의 다른 이름 ( alias ) 유니코드 코드 포인트 값을 표현한다
- float32 float64
- complex64 complex128
< Function >
func 함수명 (파라매터1,파라매터2...) (결과값1,결과값2...){
return 결과값1,결과값2
return <== 결과값을 붙이지 않으면 (결과값으로 지정된 변수드를 자동으로 return 한다
}
# 1
Go는 C,C++,Java와 다르게 매개변수의 타입은 변수명 뒤에 명시한다..
Ex)
func add( x int, y int ) int {
return x+y
}
# 2
두개 이상의 매개변수가 같은 타입일 때 같은 타입을 취하는 마지막 매개변수에만 타입을 명시하고 나머지는 생략할 수 있다.
Ex)
func add( x, y int ) int {
return x+y
}
# 3
하나의 함수는 여러개의 결과를 반환 할 수 있다
func swap(x,y string)(string,string){
return y,x
}
func main(){
a,b : swap("hello","world") <-- 이부분 두개의 리턴값을 a,b 에 대입!! 즉 a 는 y값을 받고, b는 x값을 받는다...
fmt.Println(a,b)
}
< Variables >
# 1. 변수 선언 var 사용
var x,y,z int = 1,2,3
var c, java = true, "java"
:= 를 사용하게 되면 var와 명시적인 타입 ( int,bool)을 생략할 수 있다. 단 함수 밖에서는 := 를 선언할 수 없다
즉
var x,y,z int = 1,2,3 과 x,y,z := 1,2,3 은 같다
2. const 선언
상수는 character,string,boolean, 숫자 타입 중 하나가 될 수 있음
const xxx = value
const (
xxx = 10
yyyy = 1000
)
< 반복문 >
for 밖에 없다고 한다
1. for sum < 1000 {} ( while 문 처럼)
2. for i :=0; i < 10; i++{}
3. for {} ( 무한 루프 )
< if 문 >
1. if 1 < sum {}
2. if v:=math.Pow(x,y) ; v < lim {}
위와 같이 if 에서 연산한 값을 넣고 비교 하는 로직을 작성 할 수 있다..... 와우
'GO' 카테고리의 다른 글
Go's Declaration Syntax ( Structs, Pointers, New, Slices ) (1) | 2015.07.18 |
---|---|
What is Concurrency?? ㅋㅋ (0) | 2015.07.17 |