小编Alt*_*ion的帖子

Go中有一个foreach循环吗?

foreachGo语言中是否有构造?我可以使用for?迭代切片或数组吗?

foreach go slice

521
推荐指数
6
解决办法
35万
查看次数

如何在不使用Docker-Hub的情况下共享我的Docker-Image?

我想知道Docker的图像在我的本地主机中存储的位置.我可以在不使用Docker-Hub或者使用Dockerfile"真正的"Docker-Image的情况下共享我的Docker-Image吗?当我将Docker-Image推送到Docker-Hub时,究竟发生了什么?

docker docker-registry

232
推荐指数
4
解决办法
8万
查看次数

Go:带接口的struct的动态类型转换/断言(调用方法和使用struct commons)

我试图让我的代码变得更简洁,更清洁.问题是,在一个功能,那就是工作不同structs,那implements一个interface.

在某些情况下,我需要model变量来实现结构(rowModel的切片)([] rowModel),有时我需要使用接口中的方法.代码并不简短,对不起.所以我把主要评论放在下面的代码中.

这是界面:

type StatModel interface {
    FilterData(Filter)
    ClusterData(Filter)
    CountDataForChart(string)[]ChartElement
    GroupByTreeGroups(Filter)[]OrgPack
}

type StatRow interface {
    Count( name string) float64
}
Run Code Online (Sandbox Code Playgroud)

此接口是为方法调用创建的,并且可以缩短代码.但是接口不能在OOP中将字段或结构作为Abstruct类.其中一个模型在这里:

 type NoaggModel []NoaggRow

 type NoaggRow struct {
    Date             string
    Hour             int
    Id_user          int
    Id_line          float64
    Id_region        int
    Id_tree_devision int
    N_inb            float64
    N_out            float64
    N_hold           float64
    N_abandon        float64
    N_transfer       float64
    T_inb            float64
    T_out           float64
    T_hold           float64
    T_ring           float64
    T_acw            float64
    T_wait           float64
}

type FcrModel  []FcrRow

type FcrRow struct { …
Run Code Online (Sandbox Code Playgroud)

reflection go type-assertion revel

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

Golang创建了一片地图

我试图通过以下方式创建一片地图.

keyvalue := make(map[string]interface{})
keyvalueslice := make([]keyvalue, 1, 1)
Run Code Online (Sandbox Code Playgroud)

我试图创建它就像创建字符串切片的方式一样,但是我收到一个错误,说keyvalue is not a type.我正在创建此切片以便keyvalueslice稍后将数据附加到变量.

有人可以解释什么是错的吗?

dictionary hashmap key-value go slice

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

Jekyll - 在我的项目中有Paginate时出错

我在Windows上运行3.1.2

当我尝试将'Paginate'添加到我的项目中时,我在cmd中收到错误

弃用:您似乎已启用分页,但您尚未包含该jekyll-paginate宝石.确保您具有gems: [jekyll-paginate]配置文件.

我已经jekyll-paginate (1.1.0)paginate (4.0.0)安装它仍然给这个错误.

这是我的_config.yml文件:

paginate: 4
paginate_path: '/blog/page:num/'
Run Code Online (Sandbox Code Playgroud)

还有我的index.html页面

{% for post in paginator.posts limit: 4 %}
Run Code Online (Sandbox Code Playgroud)

我该怎么检查,解决这个问题?

ruby rubygems paginate jekyll

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

Golang,goroutines:恐慌:运行时错误:内存地址无效

我是golang的新手,并试图理解主要原则并使用chanels编写基于gouroutines的代码.

在我使用的其他语言中没有这样的乐器,我想知道这样的错误就像恐慌......

我的代码:

package main

import "fmt"
import (
    "time"
)
type Work struct {
    x,y,z int
}

func worker(in <-chan *Work, out chan<- *Work){
    for w := range in {
        w.z = w.x + w.y
        time.Sleep(time.Duration(w.z))
        out <-w
    }
}

func sendWork(in chan <- *Work){
    var wo *Work
    wo.x, wo.y, wo.z = 1,2,3
    in <- wo
    in <- wo
    in <- wo
    in <- wo
    in <- wo
}

func receiveWork(out <-chan *Work ) []*Work{
    var  slice []*Work
    for …
Run Code Online (Sandbox Code Playgroud)

channel go goroutine web

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

golang,如何计算结构类型接口{}中的元素?

我在Go中相当陌生,但是很努力。

我正在尝试编写一些logick,需要检查struct的属性是否仅包含一个元素,或者第一个元素只有一个孩子。

主要结构是这样的:

type ChartOptins struct {
    Filters Filter `json:"filters"`
    Charts interface{} `json:"charts"`
}
Run Code Online (Sandbox Code Playgroud)

图表天生就是由以下结构数组组成:

    $filters = array(
        "filters" => array(
            "DayStart" => "12-01-2015",
            "DayEnd" => "12-05-2015",
            "TimePeriods"=> array(
                array("qqq","www"),
            ),
            "lines" => array(
                "first","avokado","drunduki"
            )

        ),
        "charts" => array(
            "noagg" => array(
                array(
                    "name" => "HOLD",
                    "type" => "line"
                ),
                array(
                    "name" => "UKKR",
                    "type" => "line"
                ),
                array(
                    "name" => "SVO",
                    "type" => "line"
                ),
            ),
            "oracle" => array(
                array(
                    "name" => "TDD",
                    "type" => "line"
                ),
            ) …
Run Code Online (Sandbox Code Playgroud)

struct go slice

4
推荐指数
2
解决办法
5348
查看次数

Go:分配到nil map中的条目

我现在比较新,我在这个网站上搜索了这个问题,并且回答了问题,但是无法对我的案例实施这些答案.我有一个代码:

func receiveWork(out <-chan Work) map[string][]ChartElement {

    var countedData map[string][]ChartElement

    for el := range out {
        countedData[el.Name] = el.Data
    }
    fmt.Println("This is never executed !!!")

    return countedData
}
Run Code Online (Sandbox Code Playgroud)

这种方法之外的结构没有麻烦.也map不会执行(如测试恐慌这里).我知道麻烦在于将数据递增到结构中.

有一些goroutines,正在向通道发送数据,countedData方法rgabs all,应该像这样制作一个地图:

map =>
    "typeOne" => 
       [
         ChartElement,
         ChartElement,
         ChartElement,
       ],
    "typeTwo" => 
       [
         ChartElement,
         ChartElement,
         ChartElement,
       ]
Run Code Online (Sandbox Code Playgroud)

如何以正确的方式实现这种插入?

runtime-error go goroutine

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

Oracle Instant Client:ORA-28759:无法打开文件

我所拥有的:Red Hat 6服务器,具有TCPS连接设置的远程Oracle数据库,从rpms安装的Oracle Instant Client(基本,odbc,sqlplus)。

我正在尝试设置Oracle Instant Client以连接到远程数据库。输入命令时:

/usr/lib/oracle/11.2/client64/bin/sqlplus /@AVAYAPDSDB
Run Code Online (Sandbox Code Playgroud)

我得到错误:

SQL*Plus: Release 11.2.0.4.0 Production on Sat Aug 29 12:04:39 2015

Copyright (c) 1982, 2013, Oracle.  All rights reserved.

ERROR: ORA-28759: failure to open file
Run Code Online (Sandbox Code Playgroud)

不幸的是,我附近没有工程师可以帮助我解决这个问题,所以我真的希望在堆栈社区中。

搜寻一段时间,然后搜索对我有帮助的所有内容,因为我意识到跟踪sqlplus请求将是一个不错的起点。所以现在它的痕迹看起来像这样:

    (1309189888) [29-AUG-2015 12:04:39:133] --- TRACE CONFIGURATION INFORMATION FOLLOWS ---
(1309189888) [29-AUG-2015 12:04:39:133] New trace stream is /tmp/ora/cli_30063.trc
(1309189888) [29-AUG-2015 12:04:39:133] New trace level is 16
(1309189888) [29-AUG-2015 12:04:39:133] --- TRACE CONFIGURATION INFORMATION ENDS ---
(1309189888) [29-AUG-2015 12:04:39:133] --- PARAMETER SOURCE INFORMATION …
Run Code Online (Sandbox Code Playgroud)

linux oracle instantclient

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

golang,int类型不支持索引

我在部分代码中遇到了麻烦.我正在写revel框架(要清楚).这是一个工作日常规,我希望它做几件事:

  1. 根据来源,切换stat变量的struct类型.我做了一个开关,但在所有其他代码都正确之前,我真的不知道交换机是否写得正确.

  2. 我获取日期的缓存,并将其放入新的工作项.

  3. 我发送工作到频道

这是我现在得到的:

func worker(in <-chan Task, out chan <- Work, wg *sync.WaitGroup) {

    for t := range in {
        for sourceName, charts := range t.Request.Charts {

            var stat interface{}

            switch sourceName {
            case "noagg":
                 stat = stat.([]NoaggModel)
            case "oracle":
                stat = stat.([]OracleModel)
            default:
                panic("Invalid type for Work model!")
            }

            w := Work{Name:"", Data:""}

            err := cache.Get(string(sourceName)+"_"+string(t.Date), &stat);

            for chart := range charts{
                w.Name = chart["name"]

                if err == nil{
                    w.Data = countDataByName( stat, t.Request.Filters, string(chart["name"]))
                }
                out …
Run Code Online (Sandbox Code Playgroud)

go switch-statement goroutine

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

恐慌处理或发生了什么

我不明白处理恐慌的最佳方法是什么。我可以编写自己的代码panic("bad data or empty source"),并且我将在输出中确定代码在这个位置失败,但是如何处理在非我的方法中生成的恐慌。

\n

现在我有这样的错误:

\n
C:/gocode/src/github.com/revel/revel/panic.go:26 (0x4975a4) handleInvocationPanic: c.Response.Out.Write(debug.Stack()) \nC:/gocode/src/github.com/revel/revel/panic.go:12 (0x4b60ca) PanicFilter.func1: handleInvocationPanic(c, err) \nc:/go/src/runtime/asm_amd64.s:437 (0x45cc75) call32: CALLFN(\xc2\xb7call32, 32) \nc:/go/src/runtime/panic.go:423 (0x42ec17) gopanic: reflectcall(nil, unsafe.Pointer(d.fn), deferArgs(d), uint32(d.siz), uint32(d.siz)) \nC:/gocode/src/github.com/revel/revel/intercept.go:93 (0x4b6061) InterceptorFilter.func1: panic(err)\nc:/go/src/runtime/asm_amd64.s:437 (0x45cc75) call32: CALLFN(\xc2\xb7call32, 32)\nc:/go/src/runtime/panic.go:423 (0x42ec17) gopanic: reflectcall(nil, unsafe.Pointer(d.fn), deferArgs(d), uint32(d.siz), uint32(d.siz))\nc:/go/src/runtime/panic.go:42 (0x42d280) panicmem: panic(memoryError)\nc:/go/src/runtime/signal_windows.go:161 (0x44233d) sigpanic: panicmem()\nC:/gocode/src/github.com/oculus/libs/funcs.go:13 (0x4e0ca5) GetDatesInRange: fmt.Println(err.Error())\nC:/gocode/src/github.com/oculus/rest/app/controllers/kpi.go:97 (0x4e3b2f) KpiCtrl.GetNoagg: dates, errors := libs.GetDatesInRange(request.Filters.DayStart, request.Filters.DayEnd) :97 (0x4e9f12)\nc:/go/src/runtime/asm_amd64.s:437 (0x45cc75) call32: CALLFN(\xc2\xb7call32, 32)\nc:/go/src/reflect/value.go:432 (0x471591) Value.call: call(frametype, fn, args, uint32(frametype.size), uint32(retOffset))\nc:/go/src/reflect/value.go:300 (0x470258) Value.Call: return v.call("Call", …
Run Code Online (Sandbox Code Playgroud)

go panic

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