go언어
go 언어를 좀 더 알아 가다 보면 C 언어와 동일하게 헷깔리는 것이 포인터가 되겠습니다.
다음 소스의 결과를 아시는 분은 포인터와 비 포인터의 구분을 정확하게 이해 하시는 분이고
그렇지 않은 분들은 이 부분에 대한 심화 학습이 필요하다고 판단됩니다. ^^
package main
import "fmt"
type R struct {
id int
name string
}
type P struct {
id int
name string
}
func ( r R ) print() {
fmt.Println( r.id , r.name )
}
func ( r R ) set( v int ) {
r.id = v
}
func ( r R ) set_str( s string ) {
r.name = s
}
func ( r *P ) print() {
fmt.Println( r.id , r.name )
}
func ( r *P ) set( v int) {
r.id = v
}
func ( r *P ) set_str( s string ) {
r.name = s
}
func main() {
A := R{id:3,name:"three"}
A.print()
B := P{id:4,name:"four"}
B.print()
A.set( 5 )
A.set_str( "hello" )
A.print()
B.set( 5 )
B.set_str( "hello" )
B.print()
}
이걸 실행하면 어떤 결과가 나올까요?
실행 결과는 다음과 같습니다.
3 three
4 four
3 three
5 hello