小编Tom*_*itt的帖子

如何在结构中定义多个名称标记

我需要从mongo数据库中获取一个项目,所以我定义了一个像这样的结构

type Page struct {
    PageId string                 `bson:"pageId"`
    Meta   map[string]interface{} `bson:"meta"`
}
Run Code Online (Sandbox Code Playgroud)

现在我还需要将它编码为JSON,但它将字段编码为大写(我得到PageId而不是pageId)所以我还需要为JSON定义字段标签.我试过这样的东西,但它不起作用:

type Page struct {
    PageId string                 `bson:"pageId",json:"pageId"`
    Meta   map[string]interface{} `bson:"meta",json:"pageId"`
}
Run Code Online (Sandbox Code Playgroud)

那么如何做到这一点,在结构中定义多个名称标签?

json struct go

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

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万
查看次数

忘了"git rebase --continue"并做了"git commit".怎么修?

我在git中重新定义代码,我遇到了一些合并冲突.我解决了冲突并做了:

git add
Run Code Online (Sandbox Code Playgroud)

此时我忘记了:

git rebase --continue
Run Code Online (Sandbox Code Playgroud)

我继续编码并做了:

git commit
Run Code Online (Sandbox Code Playgroud)

为了改变.现在我在"no branch",不能做:

git rebase --continue 
Run Code Online (Sandbox Code Playgroud)

我该如何解决?

git

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

PHP Traits - 定义通用常量

定义名称空间中许多类可能使用的常量的最佳方法是什么?我试图避免过多的继承,因此扩展基类不是一个理想的解决方案,我很难找到一个使用特征的好解决方案.这在PHP 5.4中是否可能以任何方式实现,还是应采取不同的方法?

我有以下情况:

trait Base
{
    // Generic functions
}

class A 
{
    use Base;
}

class B 
{
    use Base;
}
Run Code Online (Sandbox Code Playgroud)

问题是无法在PHP特征中定义常量.理想情况下我想要的是以下内容:

trait Base
{
    const SOME_CONST = 'someconst';
    const SOME_OTHER_CONST = 'someotherconst';

    // Generic functions
}
Run Code Online (Sandbox Code Playgroud)

然后可以通过应用特征的类访问这些:

echo A::SOME_CONST;
echo B::SOME_OTHER_CONST;
Run Code Online (Sandbox Code Playgroud)

但由于性状的限制,这是不可能的.有任何想法吗?谢谢.

php oop traits

53
推荐指数
5
解决办法
3万
查看次数

为团队构建Go子包

我们目前正将一些代码库迁移到Go,并且正在为一个团队中的多个开发人员提供灵活的目录结构.如果这是一个菜鸟问题,我会道歉,但我在其他地方搜索并没有得到答案.

假设我有一个包含以下结构的包:

package main

import "username/myproject/subpackage"

func main() {

}
Run Code Online (Sandbox Code Playgroud)

和一个子包:

package subpackage

func main() {

}
Run Code Online (Sandbox Code Playgroud)

这很好,并且通过阅读Github上的其他人代码,似乎这是定义子包的可接受方式.

请参阅CoreOS源代码示例:https://github.com/coreos/etcd/blob/master/main.go

我的问题是,由于Go的目录结构,这些包存储在特定的git仓库中,如果团队中的其他人检查了这些代码,他们的目录结构将由于分叉而不同.路径中的用户名和import语句将更改.事实上,我们拉动并推动彼此而不是使用集中式回购,这并没有帮助.

package main

import "otherusername/myproject/subpackage" (This line will have to be changed)

func main() {

}
Run Code Online (Sandbox Code Playgroud)

我读到的关于Go的所有内容都指出了它在团队环境中的可用性,所以我想知道我是否正确理解了包系统.

理想情况下,我们希望能够使用相对路径调用子包.我们习惯使用命名空间,我知道Go没有它们.即:

package main

import "myproject/subpackage"

func main() {

}
Run Code Online (Sandbox Code Playgroud)

但Go无法找到该文件,我确信这不是正确的方法,因为没有在线使用相对路径的示例.

所以有几个问题:

1)包是否应该具有已定义的所有者并始终将该用户名保留为导入路径的一部分?

2)这个"所有者"仓库是否应该是一个中央化的存储库(比如公司或组织)所有代码都被推送到/从中拉出?

3)处理一段代码的其他团队成员是否应该在创建者文件夹/命名空间中使用它而不是他们自己的?

4)有没有办法在import语句中定义相对路径,如果有,为什么没有人这样做呢?这被认为是不好的做法吗?

5)如何用Go子包处理repo forking?

谢谢.

git workflow go

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

从构造函数中调用类方法

从构造函数中调用类方法时出错.是否可以从构造函数中调用方法?我尝试从派生类的构造函数中调用基类方法,但我仍然收到错误.

'use strict';

class Base {
    constructor() {
        this.val = 10;
        init();
    }

    init() {
        console.log('this.val = ' + this.val);
    }
};

class Derived extends Base {
    constructor() {
        super();
    }
};

var d = new Derived();
Run Code Online (Sandbox Code Playgroud)

➜js_programsnode class1.js /media/vi/DATA/programs/web/js/js_programs/class1.js:7 init(); ^

ReferenceError:在Derived(/ media/vi/DATA/programs/web/js /)的Derived.Base(/media/vi/DATA/programs/web/js/js_programs/class1.js:7:9)中未定义init js_programs/class1.js:18:14)在Object.(/media/vi/DATA/programs/web/js/js_programs/class1.js:23:9)在Module._compile(module.js:435:26)的Object.Module._extensions..js(module.js) :442:10)在Module.load(module.js:356:32)在Function.Module._load(module.js:311:12)的Function.Module.runMain(module.js:467:10)启动时(node.js:136:18)在node.js:963:3➜js_programs

javascript ecmascript-6

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

使用多个AND运算符的Zend_Db的复杂WHERE子句

我想在Zend_Db中生成这个复杂的WHERE子句:

SELECT * 
FROM 'products' 
WHERE 
    status = 'active' 
    AND 
    (
        attribute = 'one' 
        OR 
        attribute = 'two' 
        OR 
        [...]
    )
;
Run Code Online (Sandbox Code Playgroud)

我试过这个:

$select->from('product');
$select->where('status = ?', $status);
$select->where('attribute = ?', $a1);
$select->orWhere('attribute = ?', $a2);
Run Code Online (Sandbox Code Playgroud)

那产生了:

SELECT `product`.* 
FROM `product` 
WHERE 
    (status = 'active') 
    AND 
    (attribute = 'one') 
    OR 
    (attribute = 'two')
;
Run Code Online (Sandbox Code Playgroud)

我确实找到了一种方法来完成这项工作,但我觉得通过先使用PHP组合"OR"子句然后使用Zend_Db where()子句将它们组合起来,这有点"作弊".PHP代码:

$WHERE = array();
foreach($attributes as $a):
    #WHERE[] = "attribute = '" . $a . "'";
endforeach;
$WHERE = implode(' OR ', $WHERE);

$select->from('product');
$select->where('status …
Run Code Online (Sandbox Code Playgroud)

php sql zend-framework zend-db

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

如何在Phing中对目标进行分组?

有没有办法在Phing中分组目标?我有许多目标可以通过以不同的顺序和组合运行它们来重用.例如,要创建一个新的开发版本:

$ phing clean
$ phing prepare
$ phing build
$ phing runtests
Run Code Online (Sandbox Code Playgroud)

或者从repo更新dev构建:

$ phing update
$ phing runtests
Run Code Online (Sandbox Code Playgroud)

有没有办法将这些目标分组以单个命令运行它们?我知道你可以链接目标,例如:

$ phing clean prepare build runtests
$ phing update runtests
Run Code Online (Sandbox Code Playgroud)

但理想情况下我想运行如下命令:

$ phing cleanbuild
Run Code Online (Sandbox Code Playgroud)

这将运行所有四个目标.这样,构建文件可以分离成可重用的目标.创建执行此操作的新目标将导致现有目标的代码重复.我知道你可以使用depends参数来执行其他目标,但我希望每个目标彼此独立.

Phing文档似乎不是很清楚如何做到这一点,但我确信可以在其他目标中调用目标,因为它必须是一种非常常见的做事方式.非常感谢.

php phing

15
推荐指数
2
解决办法
4016
查看次数

Nginx每个位置/传递重写uri到proxy_pass

如果您希望通过基于位置的proxypass将URL请求代理到两个不同的后端,那么这是最快最干净的解决方案.

location /app1/ {
    alias /var/www/ruby/public;
    proxy_set_header  X-Real-IP  $remote_addr;
    proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header  Host $http_host;
    proxy_redirect    off;
    try_files $uri $uri/ @ruby;
}

location @ruby {
    proxy_pass http://127.0.0.1:3000;
}

location /app2/ {
    proxy_set_header  X-Real-IP  $remote_addr;
    proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header  Host $http_host;
    proxy_redirect    off;
    try_files $uri $uri/ @other;
}

location @other {
    proxy_pass http://127.0.0.1:8080;
}
Run Code Online (Sandbox Code Playgroud)

使用此配置nginx传递"/ app1"或"/ app2"代理和后端无法识别url /命令..

例如,http://127.0.0.1:3000只有/messages在访问时才传递给http://<nginx>/app1/messages- 但在上面的配置中也传递/app1/http://127.0.0.1:3000/app1/messages.同样如此/app2

url rewrite nginx proxypass

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

使用另一个结构分配struct

我有一个RegistrationRequest结构:

type RegistrationRequest struct {
    Email    *string
    Email2   *string        
    Username *string
    Password *string
    Name     string
}
Run Code Online (Sandbox Code Playgroud)

Email2再次是电子邮件输入值,以验证什么输入的用户是正确的.

我也有一个User结构:

type User struct {
    Email    *string
    Username *string
    Password *string
    Name     string           
}
Run Code Online (Sandbox Code Playgroud)

当然,Email2除了注册之外没有必要存储.

所以,我有两个变量:requ-每个结构.是否可以将req结构分配到u结构中,以便所有公共字段都存在于u结构中?

struct go

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

标签 统计

go ×4

php ×3

git ×2

struct ×2

ecmascript-6 ×1

javascript ×1

json ×1

nginx ×1

oop ×1

phing ×1

proxypass ×1

rewrite ×1

sql ×1

traits ×1

url ×1

workflow ×1

zend-db ×1

zend-framework ×1