- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
是否可以在 Golang 中执行类似“相互”包导入的操作?
比方说我有两个包,A 和 B,具有函数 AFunc 和 BFunc,BFunc2
package A
import "B"
func AFunc() {
//do stuff but also use
B.BFunc()
}
-
package B
import "A"
func BFunc() {
//do foo
}
func BFunc2() {
//do different stuff but also use
A.AFunc()
}
有没有办法在不使用第三个包作为“桥梁”的情况下实现这一点?
编辑:为了稍微澄清一下这个问题,这当然不可能通过“简单地做”它来实现,因为编译器会抛出一个 import cycle not allowed
错误。问题是,是否有更简洁或更成熟的方法来解决此问题然后构建“桥包”?
最佳答案
interface应该是一个显而易见的答案:只要两个包都提出具有一组通用功能的接口(interface),它就允许:
packageB
使用来自A
的函数(import A
)packageA
从 B
调用函数而无需 import B
:所有需要传递给 B
实现 A
中定义的接口(interface)的实例:这些实例将被视为 A
对象。packageA
忽略了 packageB
的存在。这在“Cyclic dependencies and interfaces in golang”的评论中也有说明。
If package
X
accepts/stores/calls methods on/returns types defined packageY
, but doesn't actually accessY
's (non-method) functions or variables directly,X
can use an interface that the type inY
satisfies rather than actually importingY
.avoiding dependencies with interfaces in general, you can see how, say, the
io
module doesn't depend onos
for the File class even though its functions can work onFiles
. (It just definesio.Writer
, etc., and*os.File
satisfies those interfaces.)
例如,io
在其 Copy()
function 中接受一个 'Writer' (可以是文件或其他知道如何写的文件),并完全忽略 os
(.File)
关于import - "Mutual"Golang 包导入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24526484/
我正在尝试使用 okhttp 在我的 android 应用程序上实现双向 ssl。目前,我已经通过输入流从原始文件夹中读取服务器证书并将其添加到 keystore ,将服务器证书添加到信任库,从而实现
你好 我正在尝试获得两个 friend 之间共享的点赞,并且正在使用以下查询: SELECT source_id, target_id FROM connection WHERE source_id
考虑以下无类型 lambda 演算的玩具表示: Require Import String. Open Scope string_scope. Inductive term : Set := | Va
我正在尝试为 iPhone 应用程序实现相互身份验证。到目前为止,我似乎能够验证服务器信任,并在本地验证我的客户端证书。在 connection:didReceiveAuthenticationCha
是否可以在 Golang 中执行类似“相互”包导入的操作? 比方说我有两个包,A 和 B,具有函数 AFunc 和 BFunc,BFunc2 package A import "B" func AFu
我有一张 table likes , 其中 ID1 喜欢 ID2 ID1 ID2 1025 1101 1247 1468 1316 1304 1501 1934 164
我正在开发一个 Web 服务客户端,它需要与启用了相互身份验证的服务器进行通信。 我已经完成了以下步骤。 将服务器证书(自签名)添加到信任库并使用 SSLSocketFactory 将其设置为 Htt
我有一个在 jetty 服务器上运行的客户端实例。我加载了自己的 CA 证书并在服务器和客户端上工作。当我在握手期间发送证书请求时,我必须为客户端证书指定完整的颁发者 DN,否则客户端无法找到所需的证
我的数据库中有两个表,一个是保存用户信息(users_table)另一个跟踪 friend 用户表: id username avatar 1 max m
我想了解双向 TLS 的工作原理,我有以下示例: I have a client who wants to connect to server "svc1.example.com" 但是服务器有一个
我需要一些有关 Android OkHttp 客户端/服务器应用程序的帮助。问题如下:似乎我的 Android 客户端在收到证书请求后没有向服务器发送任何证书。 这是我的安卓代码: private s
我为 SOAP Web 服务(主要受 this SO answer 影响)开发了一个 Java 7 HTTPS 服务器(我使用 com.sun.net.httpserver.HttpsServer),
在 Android 中设计布局一段时间后,我仍然无法掌握它。结果往往是不可预测的。 我认为这部分归结为一些布局选项不能很好地协同工作。 IE。如果您使用一种指定布局的方式,则您并不打算使用其他方式。
在例子中使用"intermediate join entity " 要找出一个人的 friend 是谁,你必须聚合 friend 关系的所有 friend 目的地,例如: NSSet *persons
我正在尝试使用 Android SDK 获取两个 Facebook 用户的共同好友: Request friendsInCommon = Request.newRestRequest(myFbSess
我目前正在开发一个应用程序来让学生管理他们的类(class),但我真的不知道如何为特定功能设计数据库。与 Facebook 非常相似,客户希望当学生显示当前在特定类(class)中的人员列表时,首先显
我想像这样使用我的脚本: python test.py run python test.py stop 我的代码是这样的: parser = argparse.ArgumentParser() com
我想在 argparse 中实现这样的逻辑: If argument A is selected, the user cannot select arguments B or C. B and C c
我已经在 Go 中成功设置了 TLS 相互身份验证客户端/服务器一段时间,但现在希望进行一些小的调整。 具体来说,我想知道是否有一种方法只需要特定的客户端证书即可进行相互身份验证。 我目前正在使用这样
我正在尝试使用 Facebook Graph API V2.0 获得相互点赞,但它只返回计数.. 这是我得到的输出.. API 网址:https://graph.facebook.com/876378
我是一名优秀的程序员,十分优秀!