在下面的测试代码中,我希望将两者mytype和doPrivate方法都设置为私有,以便只有成员mytype可以访问它,而不是mypackage包的范围内的其他类型\函数.
我可以在golang中这样做吗?
package mypackage
type mytype struct {
size string
hash uint32
}
func (r *mytype) doPrivate() string {
return r.size
}
func (r *mytype) Do() string {
return doPrivate("dsdsd")
}
Run Code Online (Sandbox Code Playgroud)
田size和hash以及该doPrivate方法应该被封装并没有其他类型应有权访问它们.
当我尝试从Microsoft Web Ngram API解组此JSON对象时:
{"backoff": NaN, "cookie": "", "probabilities": [], "words": []}
Run Code Online (Sandbox Code Playgroud)
我收到错误:"无效字符'N'寻找值的开头"
我知道NaN不是有效的JSON,但数据不是我的,我需要一种方法来解析它.Go中有没有简单的方法可以做到这一点?
我认为有两种方法可以在Go(Windows)上连接到Oracle DB:
但是对于我这个级别的人(初学者在开源+ golang),这两个方法/驱动程序非常棘手.
这也是一个负担,必须经历所有这些,以便在不同的机器上进行部署,开发等.(也假设它可以工作).
有没有更好的方法在golang中连接到Oracle数据库,或者如果没有,那么有人可以在高级视图或任何视图中向我解释这会使这更容易吗?
指针将非常感激.
TQ.
我想将一些treenode数据另存为json,以便可以在Web客户端中使用它。原始数据如下所示:
id parentId name leaf
001 000 root 0
002 001 Shooping 0
003 002 Housewares 0
004 003 Kitchen 1
005 003 Officer 1
006 002 Remodeling 0
007 006 Retile kitchen 1
008 006 Paint bedroom 1
009 008 Ceiling 1
010 006 Other 1
011 001 Misc 1
Run Code Online (Sandbox Code Playgroud)
我想要json文件看起来像这样。
{
"name": "root",
"children": [
{
"name": "Shopping",
"children": [
{
"name": "Housewares",
"children": [
{
"name": "Kitchen",
"leaf": "1"
},
{
"name": "Officer",
"leaf": "1"
}
] …Run Code Online (Sandbox Code Playgroud) 我的意思是像这样的方法类型
var Util util
type util struct { }
func (util)Help(v VM) {}
func (util)HelpMe(v VM) {}
func (util)HelpYou(v VM) {}
func (util)HelpEveryOne(v VM) {}
Run Code Online (Sandbox Code Playgroud)
我在二进制文件中看到了这一点.BigEndian
// LittleEndian is the little-endian implementation of ByteOrder.
var LittleEndian littleEndian
// BigEndian is the big-endian implementation of ByteOrder.
var BigEndian bigEndian
type littleEndian struct{}
Run Code Online (Sandbox Code Playgroud)
这是对方法进行分组的一种非常棘手的方法.所以问题是:为什么struct{}?为什么不只是一个int别名,有没有理由选择struct{}其他类型?
我有以下结构:
type OpList struct {
Name xml.Name `xml:"Ser"`
Servs []Ser `xml:"Ser"`
}
Run Code Online (Sandbox Code Playgroud)
我有一个方法:
func GetInfo() (*OpList, error){
//If I print here the results gets printed
fmt.Println(OpList.Servs)
return OpList, nil
}
Run Code Online (Sandbox Code Playgroud)
访问列表在方法内部完全正常
但是,当我调用此方法并尝试访问它时失败并显示消息:单值上下文中的多值
bn:=GetInfo()
fmt.Printf(bn.Servs)
Run Code Online (Sandbox Code Playgroud)
我实际上并没有在网上获得那么多信息.如何访问从这样的典型方法返回的值?