小编mhe*_*ing的帖子

在Go Lang中编写泛型函数而没有泛型

我知道Go将来不会有泛型,并且有一些建议可以用其他结构替换它们.但是下面我的例子我被卡住了.

func P(any interface{}, err error) (interface{}) {
    if err != nil {
        panic("error: "+ err.Error())
    }
    return any
}
Run Code Online (Sandbox Code Playgroud)

正如你可能猜到的那样,我试图在任何错误上失败,并且想要放置P()任何返回两个结果的函数,第二个是错误.这工作正常,但any正在丢失它的类型信息,并且只是结果中的空接口.

因为我也在调用lib函数,所以我没有看到使用Interfaces或Reflection解决这个问题的方法.

有任何想法吗?我完全走错了轨道还是接近目标?

generics error-handling go

14
推荐指数
2
解决办法
2890
查看次数

git的具体示例合并在SVN中不起作用

我正在寻找可以在git中工作的具体示例合并,但会导致SVN中的冲突.除此之外,您在Git中从未尝试过的艰难/痛苦的SVN合并样本也没问题.

我可以识别出与我的问题相关的四类合并:

  1. 大爆炸合并
  2. 重命名/移动相关合并
  3. 在两个分支中创建目录/相同文件
  4. 纵横交错

我在这里错过了任何场景吗?

找到1-3的样本是微不足道的(在评论中找到2的样本,3作为我的答案的一部分,1几乎是任何rebase).没有人为一个成功的纵横交叉合并提供样本(看起来不是学术上的),这会在SVN中失败?

svn git merge

12
推荐指数
2
解决办法
1239
查看次数

启用docker mysql容器中的日志记录

我正在尝试熟悉docker生态系统并尝试设置一个mysql数据库容器.有了docker-compose这个样子:

version: '2'
services:
  db:
    image: mysql:5.6.33@sha256:31ad2efd094a1336ef1f8efaf40b88a5019778e7d9b8a8579a4f95a6be88eaba
    volumes:
      - "./db/data:/var/lib/mysql"
      - "./db/log:/var/log/mysql"
      - "./db/conf:/etc/mysql/conf.d"
    restart: "yes"
    environment:
      MYSQL_ROOT_PASSWORD: rootpw
      MYSQL_DATABASE: db
      MYSQL_USER: db
      MYSQL_PASSWORD: dbpw
Run Code Online (Sandbox Code Playgroud)

我的conf目录包含一个文件:

[mysqld]
log_error       =/var/log/mysql/mysql_error.log
general_log_file=/var/log/mysql/mysql.log
general_log     =1
slow_query_log  =1
slow_query_log_file=/var/log/mysql/mysql_slow.log
long_query_time =2
log_queries_not_using_indexes = 1
Run Code Online (Sandbox Code Playgroud)

不幸的是我没有得到任何日志文件.设置本身是正确的,并使用cnf文件.连接到容器和创建3个文件后,chown他们mysql并重新启动容器,记录工作正常.

我很确定这是一种常见的情况,而我目前的运行方式似乎非常愚蠢.这样做的正确方法是什么?

我可以通过在Dockerfile中移动所有这些东西来改进我的方法,但这对我来说仍然很奇怪.

mysql logging docker

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

是否存在与gits no-fast-forward merge相当的mercurial?

什么是merits等同于gits no-fast-forward merge(如果可以快进)?

编辑

假设您在master/default的头/尖端有一个分支/书签:

 o feature
 |
 o
 |
 o master/default
 |
 ...
Run Code Online (Sandbox Code Playgroud)

简单的快进合并将导致:

 o feature/master/default
 |
 o
 |
 o
 |
 ...
Run Code Online (Sandbox Code Playgroud)

非快进合并看起来像:

 o merge commit - feature/master/default
 | \
 |  o     
 |  |
 |  o
 | /
 o
 |
 ...
Run Code Online (Sandbox Code Playgroud)

git merge mercurial

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

PHP PHAR出现意外问题

经过一些测试/脚本/使用PHP 5.3 PHAR档案后,我发现了一些问题.

glob的

PHAR不适用于glob.既不作为包装器(http://www.php.net/manual/en/phar.using.stream.php#104320)也不作为函数调用.

在我的测试项目中,我不得不迭代PHAR中的文件,并通过全局等效的正则表达式过滤结果.

imagettfbbox

我不知道为什么,但imagettfbbox也不理解PHAR流包装器.

这里最简单的解决方案是通过copy()提取文件.(PHAR :: extractTo返回异常,没有堆栈跟踪或行号.)

还有其他惊喜,我应该期待吗?还有其他已知问题吗?它们是否随处可见?

php glob phar

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

在mysql中迭代字符串中的字符

首先,我有一个非常具体的问题,但也许我的问题的另一种方法(第二部分)也可以帮助我.

有没有办法通过mysql中的索引来解决字符串中的字符.(即PHP $ var [2]会给你第3个字符)?

显而易见的方法是SUBSTRING(var, 3,1 ),因为我的字符串长度为1024个字符,所以我认为这不是最快的解决方案.如代码示例所示,使用子字符串来检索字符串的尾部也没有获得性能差异.有没有办法迭代字符串?(转移第一个元素?)

CREATE FUNCTION hashDiff( hash1 TEXT(1024), hash2 TEXT(1024), threshold INT) 
RETURNS INT
DETERMINISTIC
BEGIN
    DECLARE diff, x, b1, b2 INT;
    SET diff =0;
    SET x = 0;
    WHILE (x<1024 AND diff<threshold)  DO
        SET b1 = ASCII(hash1); --uses first character only!!
        SET b2 = ASCII(hash2);
        SET hash1=SUBSTRING(hash1, 2 );
        SET hash2=SUBSTRING(hash2, 2 );
        SET diff=diff+ ((b1-b2)*(b1-b2));
        SET x=x+1;
    END WHILE;
    RETURN diff;
END 
Run Code Online (Sandbox Code Playgroud)

如果您还没有从代码中读取它,我会尝试编写一个存储过程来计算哈希值之间的差异或距离.差异是字符方形距离(即hashDiff(AA,AC)=(65-65)²+(65-67)²=4)的总和.如果散列已经不同,则可以通过引入阈值来取消计算来实现第一次主要性能提升.但由于mysql不是我的"日常"语言,我在这一点上坚持寻找其他优化.为了完整性,两个样本哈希:

YAAAAAAYAAAYAAVAAQAARAOAAOAQASAQAMAKAKAJIAJAJIAHAHIAKJAIIAHHAHIIAIHGAGFFAGGFEAFEEEEAEDDDDDAEEEEDEEEFAFFFFFFEFFFEFFFFFGFEEFFEEEFFFJEFFEEEEEEELFFFFEEFJEEEEDIEEEEEIEEEEHEEEJEEFKFEFKGGFNHGOIIJTJKYONYNMTGHNHHQISJJQIKWLXJJSMYRQWJOGKDDFCCBBAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAYAAAYAAWAARAASASAAQARAUAYAYATAOALKAJAJIAIAHHAHGAGFAFFAEFFAEFFAFFFAEEFFAFEEEDADEDDDDADDDCDDDDDAEEEFEEEEDDDEEEDEDDEEEFEFFGGFMFHGFFFGFFFLGHGGHGGNHHGGGOHGHGHMGGFGMFFFMFGFLFFFMGFFMGGMGGGNGGMGGLGGLGGMGGLEIEEHDCGCGCDGDGDCGDFCECCECECECECFCECFCFCFCFCFCGCJGYCYAAAAAAYAAAYAAUAATAAUAUAAUARARAQAPAPASARRAPARQAPAQQAQQAQSAKMATKKAIIHAIHGAGGGGAGHHGGAGGFGFFAFFGEFFFFFAFFGFGGGFFFEEFGFFGGFGGHIJJLKLWLKJJIJJJKJRLJKLKKKUKLLKKUMMKJIQIIIISKJJWKLLXMLMYMLNYMMYMLLWJIQIINFGKFFKEEIDHEDHDDFCECCFDECCFCFDGCDGCGCGEGCDCECECFDFCGDGCIEKEOAYNFBREUXKPQMMQTKTMMNJLPPVYYYTOUOPOLLJKKJJJIJIMJJJLIJJLLJIIHHIHHHIGHIHIHJHHHJHHIHGHGHFGHGFFEFEEEFEFEFFGGHIHIHGHGHHIIIIHIIJMNLONKLKKKKKKKMLKKLONMKOOOMLOPONMNMKKLLKKLMNKLMMMNMOPPOORPORSSVRTSSRTRRTSSTTXSTQRPONOKKLKLJMKJJIJIIHHHIIIJHIJIJJIJIKJIMWMYYDAAAAAAAAAAA

AAAAAAAAAAABAABAACAACACAACADADAEADADADADDAEAEEAEAFEAEEAEFAFGAGGGAGGGAHHHAHIIIAIHIJHAIIHIHHAJIHIJIJKJAJJJIKJJJJKKJKJKKLKLKLLMMMNNMYOOOOOOPOONYOONONNPYNOOOPYOOPPPYNONNYMLLWLLKUJIISHIHOGGMFGFLFFMGGLFGLGFLFFKFKFFLEEKFLEFJFKFGNGNHLFHJFIEGDIEKGOIRFGBBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABABACACDACADDACADDADDAEDAFEAEEFAFFFAFFGAFGGGAIGHHIAHIHHHHAHIHIIJJIIAIIIIJIJKJIIIIJJHIIHIIIIJIIIIRJJJJKJJJJLVKLLKLLKXLMMKMXMLLLMWMMMMYMNLYMNNYNNMYMMNYMLYLMLXKJRIHPHIMGGMFEJEJEEIEEHDGCDFCFDCFCECECCEBEBECFDGCFDNGLDBAAAAAAAAAAAAAAAAAAAAAABAAAAABAABABAACACACACACACACADDADAEEAFAFGAFGAHGAGGAGGHAGGIAIHJAJJJJAJKKKKAMLMNNNANOMMNNMMNAONMNOOOMOOPOMNOMMNPOOPPPPRQQYPPRPPPPPNOYLLMMMMLYLMLMLYLMLMMYLNNMYNLLWMLKXLLLUKIKQIIQGHHPFHNGFLFFLGFJEEJEIDDIDCHDFCDGCFCCFCECECCECFCGDGDHDHDIFIDEBBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAABBBBBCBCCCCDCCCCCCCCDDDDEDEEEEFFDEGGHGHHHGHHHHHHIIJJJJJIJJJJJJIKJJKLKKMMNMMMMMMMNNNNNNLNNONPONNNOOOOPQQQRSSSSSSUTSTUUUVWVVXUYXWVXVXWYVYWYVYYUWVUTTSSPQPQOPOPONONOMONOOONNNMMNLJJKJIIJHHGGGFHFGFFFFEEEDDEEEEFGGIGJLRNEAAAAAAAAAAAAA

任何帮助或提示将不胜感激.

mysql string optimization substring distance

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

不在对象上下文中时使用$ this

也许它是在早上或我完全失明,但为什么我得到一个'致命错误:在不在对象上下文中使用$ this'在下面的代码中.那里没有任何静态.

班级:

<?php

class Property
{

    /**
     * @var string[]
     */
    private $values;

    public function __contruct($file)
    {
        $this->values = parse_ini_file($file, false);
    }

    /**
     * @return string
     */
    public function get($key, $default = null)
    {
        if (key_exists($key, $this->values)) { //<-- error
            return $this->values[$key];
        }
        return $default;
    }
}
Run Code Online (Sandbox Code Playgroud)

考试:

<?php

class PropertyTest extends Test
{

    public function testGet()
    {
        $prop = new Property($this->getResource('test.properties'));
        $this->assertEquals('foo', $prop->get('test.entry', 'xyz')); 
        $this->assertEquals('bar', $prop->get('test.entry2', 'xyz'));
        $this->assertEquals('xyz', $prop->get('test.entry3', 'xyz'));
        $this->assertEquals(null, $prop->get('test.entry3'));
    }
}
Run Code Online (Sandbox Code Playgroud)

编辑

指示跟踪的错误注释.在由Property-> get()方法的第一行引起的第一个$ prop-> …

php

5
推荐指数
2
解决办法
1748
查看次数