>  기사  >  백엔드 개발  >  "패키지 수준 내보내기"는 무엇을 의미합니까?

"패키지 수준 내보내기"는 무엇을 의미합니까?

PHPz
PHPz앞으로
2024-02-05 22:15:081089검색

패키지 수준 내보내기는 무엇을 의미합니까?

질문 내용

저는 이 로거 작업을 하고 있습니다. 이 가져오기가 정확히 무엇을 의미하나요?

으아아아 으아아아

예제에서 볼 수 있듯이 "내장" 로그가 위 구현으로 대체되었습니다. 공식/공식 사양을 찾을 수 없습니다. 아마도 이 함수가 어떻게 호출되는지 모르겠습니다.


정답


함수를 패키지 수준에서 직접 내보낸다는 점을 참고할 뿐입니다. 즉, 내보낸 기호에 액세스하기 위해 유형이나 변수 참조가 필요하지 않습니다.

..흠..예제 내의 예는 withfields() 함수입니다.

이것은 "패키지 수준"에서 내보내지므로 함수를 참조하는 데 필요한 것은 패키지 이름(또는 별칭)뿐입니다.

이 경우 logrus 패키지는 log로 별칭이 지정되었으므로 이 패키지가 내보내는 logrus 包已被别名为 log,因此可以简单地调用它导出的 withfields() 함수를 간단히 호출할 수 있습니다.

으아아아

반대로, 예제의 info() 함수는 logrus 패키지의 다른 유형에서 내보낸 기호(이 경우 함수)를 보여줍니다. () 함수는 logrus.entry 참조(info() 函数说明了由 logrus 包中的另一种类型导出的符号(在本例中为函数);这里的 info() 函数在 logrus.entry 引用上调用(由 withfields() 함수에 의해 반환됨)에서 호출됩니다.

대체 무슨 일이야?

패키지 수준 내보내기는 go에서 일반적입니다. 아무 것도 내보내지 않는 패키지는 아무에게도 쓸모가 없습니다! :)

"패키지 수준" 내보내기로 명시적으로 참조되는지는 확실하지 않습니다. 일반적으로 "내보내기" 또는 "내보내기 기호" 등입니다.

In logrus 的情况下特别调用它们,因为包作者使用它来创建一个与 golang 中的标准 log 패키지 "호환" 패키지("패키지 수준" 내보내기 사용). p>

그렇다면 logrus 别名为 log,则 logrus 提供标准 log 包的超集;这是故意的,以便通过简单地更改进行 log 调用的文件中的导入语句,可以非常快速地将使用 log 包的现有代码转换为 logrus .

위 내용은 "패키지 수준 내보내기"는 무엇을 의미합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 stackoverflow.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제