首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >什么是C++的“使用”在戈朗

什么是C++的“使用”在戈朗
EN

Stack Overflow用户
提问于 2016-08-11 19:14:41
回答 4查看 2.6K关注 0票数 9

在戈朗,C++的using some_namespace::object等效值是什么?

根据问题这里,我可以在下面的声明中得到using namespace common

代码语言:javascript
复制
import (
  . "common"
)

但这将导入整个命名空间。现在我只想使用,比如platform定义,类似于using common::platform

Go中是否有类似的内容,这样我就不必一直输入common.platform了吗?

EN

Stack Overflow用户

发布于 2016-08-12 05:52:43

就像其他人说的,围棋是不可能的。在Go中,您导入包,而不是从包中导入函数或类型。

请注意,如果您创建一个辅助包,您可以很容易地实现您想要的结果。

假设您只想“使用”fmt.Println()fmt.Printf()函数。创建一个助手包:

代码语言:javascript
复制
package helper

import "fmt"

func Println(a ...interface{}) (n int, err error) {
    return fmt.Println(a...)
}

func Printf(format string, a ...interface{}) (n int, err error) {
    return fmt.Printf(format, a...)
}

在需要C++的“使用”功能的地方,使用点.导入。

代码语言:javascript
复制
import . "helper"

func Something() {
    Println("Hi")
    Printf("Using format string: %d", 3)
}

结果是,只有helper包的导出标识符才在作用域中,而不是来自fmt包的其他标识符。当然,您也可以使用这个单一的helper包从fmt以外的包中提供函数。helper可以导入任何其他包,并有一个“代理”或委托函数来发布它们的功能。

就我个人而言,我不觉得有必要这样做。我只需导入fmt并使用fmt.Println()fmt.Printf()调用其函数。

票数 2
EN
查看全部 4 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38904423

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档