小编har*_*ryz的帖子

golang结构定义中反引号的用法是什么?

type NetworkInterface struct {
    Gateway              string `json:"gateway"`
    IPAddress            string `json:"ip"`
    IPPrefixLen          int    `json:"ip_prefix_len"`
    MacAddress           string `json:"mac"`
    ...
}
Run Code Online (Sandbox Code Playgroud)

我很困惑什么是反引号内容的功能,比如json:"gateway".

这只是评论//this is the gateway吗?

go

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

如何检查进程是否在docker容器中运行

[Updated1]我有一个shell会在某些函数中更改TCP内核参数,但现在我需要让这个shell在Docker容器中运行,这意味着shell需要知道它在容器内运行并停止配置内核.

现在我不知道如何实现,这里是/proc/self/cgroup容器内部的内容:

9:hugetlb:/
8:perf_event:/
7:blkio:/
6:freezer:/
5:devices:/
4:memory:/
3:cpuacct:/
2:cpu:/docker/25ef774c390558ad8c4e9a8590b6a1956231aae404d6a7aba4dde320ff569b8b
1:cpuset:/
Run Code Online (Sandbox Code Playgroud)

我可以使用上面的任何标志来确定此进程是否在容器内运行?

[Updated2]:我还注意到确定进程是否在lxc/Docker中运行,但在这种情况下似乎不起作用/proc/1/cgroup,我的容器中的内容是:

8:perf_event:/
7:blkio:/
6:freezer:/
5:devices:/
4:memory:/
3:cpuacct:/
2:cpu:/docker/25ef774c390558ad8c4e9a8590b6a1956231aae404d6a7aba4dde320ff569b8b
1:cpuset:/
Run Code Online (Sandbox Code Playgroud)

没有/ lxc/containerid

shell containers docker

65
推荐指数
6
解决办法
5万
查看次数

如何使用/ bin/sh检查模式匹配,而不是/ bin/bash

我正在使用Ubuntu系统shell,而不是bash,我发现常规方式无法正常工作:

#!/bin/sh
string='My string';

if [[ $string =~ .*My.* ]]
then
   echo "It's there!"
fi
Run Code Online (Sandbox Code Playgroud)

错误[[:找不到!

我该怎么做才能解决这个问题?

shell

16
推荐指数
3
解决办法
2万
查看次数

golang中的事件驱动模式

我正在使用golang来实现一个简单的事件驱动工作者.就像这样:

  go func() {
        for {
            select {
            case data := <-ch:
                time.Sleep(1)
                someGlobalMap[data.key] = data.value 
            }
        }
    }()
Run Code Online (Sandbox Code Playgroud)

主函数将创建几个goroutine,每个都将执行以下操作:

ch <- data
fmt.Println(someGlobalMap[data.key])
Run Code Online (Sandbox Code Playgroud)

正如你所看到的那样,因为我的工作人员需要一些时间来完成这项工作,所以我的主要功能将无效.我如何正确控制这个工作流程?

channel go goroutine

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

什么是将元素附加到可能尚未初始化的数组的Ruby习惯用法?

我发现<<除非已经初始化,否则Array不能使用它.我目前这样写:

unless @app
 @app = my_array
else
 @app << my_array
end 
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法来写这个?

我之前使用过|| =,但是

(@app ||= []) << [1,2,3]
Run Code Online (Sandbox Code Playgroud)

将返回[[1,2,3]],这不是我们想要的.我们想要[1,2,3]

ruby arrays idioms append

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

DeepEqual处理使用back tick初始化的数组有何不同?

我的问题很简单,我使用back tick来启动一个字符串数组,但我发现golang对这个数组的处理方式不同:

import (
    "fmt"
    "reflect"
)

func main() {
    x := []string{`hello world`, "me"}
    y := []string{"hello", "world", "me"}
    fmt.Println(x)
    fmt.Println(y)
    fmt.Println(reflect.DeepEqual(x, y))
}
Run Code Online (Sandbox Code Playgroud)

输出是:

[hello world me]
[hello world me]
false
Run Code Online (Sandbox Code Playgroud)

这让我很困惑:我应该确保所有字符串数组都以相同的方式启动吗?

arrays string go slice

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

标签 统计

go ×3

arrays ×2

shell ×2

append ×1

channel ×1

containers ×1

docker ×1

goroutine ×1

idioms ×1

ruby ×1

slice ×1

string ×1