이동 패키지의 변수를 어떻게 재정의합니까? 예를 들어go 언어로 중첩 된 패키지의 변수를 재정의하는 방법은 무엇입니까?
: ARG1이 파일 2에 존재하는 경우 내가 file1.go에 ARG1 무시할 수있는 방법
file1.go
package A
import "A/B"
var Arg1 = "Hello"
file2.go
package A/B
var Arg1 = "World"
. 가기?
이동 패키지의 변수를 어떻게 재정의합니까? 예를 들어go 언어로 중첩 된 패키지의 변수를 재정의하는 방법은 무엇입니까?
: ARG1이 파일 2에 존재하는 경우 내가 file1.go에 ARG1 무시할 수있는 방법
file1.go
package A
import "A/B"
var Arg1 = "Hello"
file2.go
package A/B
var Arg1 = "World"
. 가기?
예를 들어 특정 위치 (미국)가있는 경우 해당 위치가 일반 위치 (세계)보다 우선되는 경우 이와 같은 작업을 수행하려고합니까?
// 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
하지 않으면, 당신이 뭘 하려는지의 더 구체적인 예를 제공하십시오.
수 없습니다. 패키지는 자체 포함되어 있습니다. "패키지 A/B"꽤 이상한 같습니다
BTW 타 패키지 B의 - 따라서 설정 할 수 없습니다 - 패키지 A는 을 ARG1 (소문자)를 내 보내지 않습니다 경우 표시되지 않습니다 나를.
이 경우 "재정의"란 무엇을 의미하는지 모르겠습니다. (또한 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'를 통해.
감사! 이게 내가 원한거야 :) – jdk2588