2013-04-17 2 views

답변

1

예를 들어 특정 위치 (미국)가있는 경우 해당 위치가 일반 위치 (세계)보다 우선되는 경우 이와 같은 작업을 수행하려고합니까?

// file A/B.go 

package B 

var location = "USA" 

func Location() string { 
    return location 
} 

// file A.go 

package A 

import "A/B" 

var location = "World" 

func Location() string { 
    loc := B.Location() 
    if len(loc) == 0 { 
     loc = location 
    } 
    return loc 
} 

// file main.go 

package main 

import (
    "A" 
    "fmt" 
) 

func main() { 
    fmt.Println("Hello,", A.Location()) 
} 

출력 :

Hello, USA 

하지 않으면, 당신이 뭘 하려는지의 더 구체적인 예를 제공하십시오.

+0

감사! 이게 내가 원한거야 :) – jdk2588

1

수 없습니다. 패키지는 자체 포함되어 있습니다. "패키지 A/B"꽤 이상한 같습니다

BTW 타 패키지 B의 - 따라서 설정 할 수 없습니다 - 패키지 A는 을 ARG1 (소문자)를 내 보내지 않습니다 경우 표시되지 않습니다 나를.

3

이 경우 "재정의"란 무엇을 의미하는지 모르겠습니다. (또한 file1.go는 '패키지 a'이고 file2.go는 '패키지 b'입니다.)

패키지 "a"안의 패키지 "b"에 정의 된 Arg1에 액세스하려는 경우 예 :

// In package "a" 
x = Arg1 // references a.Arg1 
y = b.Arg1 // references b.Arg1 

그러나 무시와 비슷한 것은 없습니다. 패키지 "a"에서 a의 Arg1과 b의 Arg1은 서로 다른 엔티티로 액세스 할 수 있습니다. 나중에 필수 지정자 'b'를 통해.

관련 문제