我知道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解决这个问题的方法.
有任何想法吗?我完全走错了轨道还是接近目标?
我正在寻找可以在git中工作的具体示例合并,但会导致SVN中的冲突.除此之外,您在Git中从未尝试过的艰难/痛苦的SVN合并样本也没问题.
我可以识别出与我的问题相关的四类合并:
我在这里错过了任何场景吗?
找到1-3的样本是微不足道的(在评论中找到2的样本,3作为我的答案的一部分,1几乎是任何rebase).有没有人为一个成功的纵横交叉合并提供样本(看起来不是学术上的),这会在SVN中失败?
我正在尝试熟悉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中移动所有这些东西来改进我的方法,但这对我来说仍然很奇怪.
什么是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) 经过一些测试/脚本/使用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返回异常,没有堆栈跟踪或行号.)
还有其他惊喜,我应该期待吗?还有其他已知问题吗?它们是否随处可见?
首先,我有一个非常具体的问题,但也许我的问题的另一种方法(第二部分)也可以帮助我.
有没有办法通过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
任何帮助或提示将不胜感激.
也许它是在早上或我完全失明,但为什么我得到一个'致命错误:在不在对象上下文中使用$ 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-> …