小编Dmi*_*ing的帖子

结构的私有字段和方法

在下面的测试代码中,我希望将两者mytypedoPrivate方法都设置为私有,以便只有成员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)

sizehash以及该doPrivate方法应该被封装并没有其他类型应有权访问它们.

go

40
推荐指数
5
解决办法
4万
查看次数

在Go中解析JSON'NaN'值

当我尝试从Microsoft Web Ngram API解组此JSON对象时:

{"backoff": NaN, "cookie": "", "probabilities": [], "words": []}
Run Code Online (Sandbox Code Playgroud)

我收到错误:"无效字符'N'寻找值的开头"

我知道NaN不是有效的JSON,但数据不是我的,我需要一种方法来解析它.Go中有没有简单的方法可以做到这一点?

json nan go

12
推荐指数
1
解决办法
2295
查看次数

如何在go中连接到Oracle

我认为有两种方法可以在Go(Windows)上连接到Oracle DB:

  1. github.com/tgulacsi/goracle
  2. github.com/mattn/go-oci8

但是对于我这个级别的人(初学者在开源+ golang),这两个方法/驱动程序非常棘手.

这也是一个负担,必须经历所有这些,以便在不同的机器上进行部署,开发等.(也假设它可以工作).

有没有更好的方法在golang中连接到Oracle数据库,或者如果没有,那么有人可以在高级视图或任何视图中向我解释这会使这更容易吗?

指针将非常感激.

TQ.

windows oracle cx-oracle oci8 go

11
推荐指数
1
解决办法
1万
查看次数

使用golang将treenode保存为json文件?

我想将一些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)

tree json go

4
推荐指数
1
解决办法
963
查看次数

在Golang中,我应该将哪种类型用于仅方法类型?

我的意思是像这样的方法类型

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{}其他类型?

oop go

1
推荐指数
1
解决办法
68
查看次数

Go方法失败:单值上下文中的多值

我有以下结构:

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)

我实际上并没有在网上获得那么多信息.如何访问从这样的典型方法返回的值?

go

0
推荐指数
1
解决办法
458
查看次数

标签 统计

go ×6

json ×2

cx-oracle ×1

nan ×1

oci8 ×1

oop ×1

oracle ×1

tree ×1

windows ×1