我意识到处理可空类型的正确方法是使用HasValue属性.但我想知道为什么以下switch语句在null case而不是default上打破.使用VS2015 C#4.0.另一台使用VS2010 C#4.0的计算机没有同样的问题.
private void Testing()
{
bool? boolValue = true;
switch (boolValue)
{
case null:
break; //even though value is true, code runs here
default:
break;
}
}
Run Code Online (Sandbox Code Playgroud)
编辑:使用任何Nullableif仅指定行为,case Null并且default指定行为.
我已经调试了一些类似的解决方案,但想知道我们是否可以将Trie Tree改进为部分匹配前缀(在Trie类的搜索方法中,当前搜索方法仅检查是否匹配完整的单词)甚至可以提高性能,这可能会返回从较早的错误路径?我对这个想法不是很有信心,所以早点寻求建议.
我发布了一个类似的解决方案.谢谢.
给定2D板和字典中的单词列表,找到板中的所有单词.
每个字必须由顺序相邻的单元的字母构成,其中"相邻"单元是水平或垂直相邻的单元.一个单词中不能多次使用相同的字母单元格.
例如,给出单词= ["oath","pea","eat","rain"]和board =
[
['o','a','a','n'],
['e','t','a','e'],
['i','h','k','r'],
['i','f','l','v']
]
Run Code Online (Sandbox Code Playgroud)
返回["吃","誓言"]
class TrieNode():
def __init__(self):
self.children = collections.defaultdict(TrieNode)
self.isWord = False
class Trie():
def __init__(self):
self.root = TrieNode()
def insert(self, word):
node = self.root
for w in word:
node = node.children[w]
node.isWord = True
def search(self, word):
node = self.root
for w in word:
node = node.children.get(w)
if not node:
return False
return node.isWord
class Solution(object):
def findWords(self, board, words):
res = []
trie …Run Code Online (Sandbox Code Playgroud) 我第一次运行时会得到以下堆栈跟踪
activator run
[warn] [NOT FOUND ] org.apache.commons#commons-compress;1.7!commons-compress.jar (1ms)
[warn] ==== activator-launcher-local: tried
[warn] /activator-dist-1.3.9/repository/org.apache.commons/commons-compress/1.7/jars/commons-compress.jar
[warn] [NOT FOUND ] org.tukaani#xz;1.4!xz.jar (0ms)
[warn] ==== activator-launcher-local: tried
[warn] /activator-dist-1.3.9/repository/org.tukaani/xz/1.4/jars/xz.jar
[warn] ::::::::::::::::::::::::::::::::::::::::::::::
[warn] :: FAILED DOWNLOADS ::
[warn] :: ^ see resolution messages for details ^ ::
[warn] ::::::::::::::::::::::::::::::::::::::::::::::
[warn] :: org.apache.commons#commons-compress;1.7!commons-compress.jar
[warn] :: org.tukaani#xz;1.4!xz.jar
[warn] ::::::::::::::::::::::::::::::::::::::::::::::
sbt.ResolveException: download failed: org.apache.commons#commons-compress;1.7!commons-compress.jar
download failed: org.tukaani#xz;1.4!xz.jar
at sbt.IvyActions$.sbt$IvyActions$$resolve(IvyActions.scala:291)
Run Code Online (Sandbox Code Playgroud)
有时候我有机会按下retry,当我成功的时候.我正在用docker构建它,并希望它每次都能工作.
这是我的配置
build.sbt
name := """swsupplymonitor"""
version := "1.0-SNAPSHOT"
libraryDependencies ++= Seq(
"mysql" % …Run Code Online (Sandbox Code Playgroud) 有没有办法用using T-SQL语句计算我的数据库中没有行的表?
我使用TIC将文本转换为图像.
我已经对此进行了大量搜索,但它似乎是Unicode问题(初始内侧和最终字母的unicodes)或者可能是内容类型,因为图像是在PNG中.
如果我没有呼应与图像转换content type text/html和charset=UTF-8我得到所需的输出加入乌尔都语字母.
require_once 'lib/tic.php';
$text="???? ??? ";
TIC::factory('C:\Windows\Fonts\Nastalique.ttf')
->setText($text)
->setPadding(10)
->setBgColor('ff0000')
->setFontColor(0xff, 0xff, 0x00)
->setFontSize(24)->create(true);
Run Code Online (Sandbox Code Playgroud)
出去吧
? ? ? ? ? ? ?
Run Code Online (Sandbox Code Playgroud) 我想构建一些代码,在共享库的加载时调用一些代码.我以为我会这样做:
#pragma init(my_init)
static void my_init () {
//do-something
}
int add (int a,int b) {
return a+b;
}
Run Code Online (Sandbox Code Playgroud)
所以当我用它构建代码时
gcc -fPIC -g -c -Wall tt.c
它回来了
gcc -fPIC -g -c -Wall tt.c
tt.c:2: warning: ignoring #pragma init
tt.c:4: warning: ‘my_init’ defined but not used
Run Code Online (Sandbox Code Playgroud)
所以它忽略了我的#pragmas.我在实际代码中尝试了这个并且我的代码中止了,因为在pragma部分中没有调用函数,因为它被忽略了.
我如何让gcc使用这些#pragma init和fini语句?
我用这种方式从服务器端到客户端获取数据.但我在验证服务器文件时遇到问题.
我想在获得读取数据的权限之前检查用户名和密码.我尝试使用额外的方法,但我不起作用.
class MyService
{
public function add($x, $y)
{
return $x + $y;
}
}
$options = array(
'uri' => 'http://server/namespace',
'location' => 'http://server/location',
);
$server = new SOAPServer(null, $options);
$server->setObject(new MyService());
$server->handle();
Run Code Online (Sandbox Code Playgroud)
$options = array(
'uri' => 'http://server/namespace',
'location' => 'http://server/location',
);
$client = new SOAPClient(null, $options);
echo $client->add(10, 10);
Run Code Online (Sandbox Code Playgroud) 我找到了这个语句,如果一个线程在用一个失败快速的迭代器迭代集合时直接修改了一个集合,迭代器就会抛出这个异常.在http://download.oracle.com/javase/6/docs/api/java/util/ConcurrentModificationException.html.
我发现下面的代码中甚至会抛出并发修改
List<Employee> lista= new ArrayList();
Employee emp1=new Employee();
Employee emp2=new Employee();
Employee emp3=new Employee();
lista.add(emp1);
lista.add(emp2);
lista.add(emp3);
for(Employee emp:lista)
{
emp2.setEmpId(2);
lista.remove(emp2);
}
Run Code Online (Sandbox Code Playgroud)
问题1: - 所以我可以说增强循环也在内部使用失败快速迭代器吗?虽然当我执行下面的代码它工作正常
for(int i=0;i<lista.size();i++)
{
Employee empTemp=lista.get(i);
lista.remove(emp2);
}
Run Code Online (Sandbox Code Playgroud)
问题2: - 另一个问题是声明时说
如果一个线程修改了一个集合
我的猜测是修改意味着删除或添加不是为了更新列表接口的集合内的元素,同时它还包括对set接口的元素的修改.对?至少我试过的程序是他们的情况.
编辑
关于set我怀疑我的上述语句,即当我们尝试在迭代时修改set时它抛出并发修改异常.我尝试了下面的代码,但它没有抛出任何异常
HashSet<Employee> set1= new HashSet();
Employee emp4=new Employee();
Employee emp5=new Employee();
Employee emp6=new Employee();
set1.add(emp4);
set1.add(emp5);
set1.add(emp6);
Iterator iter1=set1.iterator();
while(iter1.hasNext())
{
Employee emp12=(Employee)iter1.next();
System.out.println("");
emp5.setEmpId(2);
}
Run Code Online (Sandbox Code Playgroud)
理想情况下,如果在http://download.oracle.com/javase/6/docs/api/java/util/HashSet.html上创建迭代器之后的任何时间修改了集合, 那么它应该抛出并发修改异常但事实并非如此.不知道为什么?
背景:
我正在使用谷歌应用引擎,我的网站爬虫有一个奇怪的错误.
我有一个后端,每晚会自动抓取一个网站.由于php中的时间限制,这是由推送到pushQueue的任务发起的.
问题:
当我手动运行创建任务的脚本时,任务按预期完成,没有错误.但是当cron启动任务时,我收到以下错误.
调用URLFetch失败,应用程序错误5为url x
码:
function url_get_contents ($Url) {
global $retry;
try {
if (!function_exists('curl_init')){
die('CURL is not installed!');
}
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $Url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$output = curl_exec($ch);
curl_close($ch);
return $output;
} catch (Exception $e) {
syslog(LOG_INFO, 'Caught exception: ', $e->getMessage());
if($retry > 0){
$retry -= 1;
return url_get_contents($Url);
}
else{
return null;
}
}
}
Run Code Online (Sandbox Code Playgroud)
感谢syslog我可以看到$ url很好,这让我发疯,因为当手动启动完全相同的脚本而不是通过cron时它会起作用.
我怎样才能解决这个问题?
提前致谢.
我们的应用程序在AWS上的docker容器上运行.操作系统:Ubuntu 14.04.2 LTS Nginx版本:nginx/1.4.6(Ubuntu)Memcached版本:memcached 1.4.14 PHP版本:PHP 5.5.9-1ubuntu4.11(cli)(内置:2015年7月2日15:23: 08)系统内存:7.5 GB
我们得到空白页面和404错误的频率较低.在检查日志时发现php-child进程被杀死,而且内存似乎主要由memcache和php-fpm进程使用,并且内存空间非常低.
memcache配置为使用2GB内存.
这是php www.conf
pm = dynamic
pm.max_children = 30
pm.start_servers = 9
pm.min_spare_servers = 4
pm.max_spare_servers = 14
rlimit_files = 131072
rlimit_core = unlimited
Run Code Online (Sandbox Code Playgroud)
错误日志
/var/log/nginx/php5-fpm.log
[29-Jul-2015 14:37:09] WARNING: [pool www] child 259 exited on signal 11 (SIGSEGV - core dumped) after 1339.412219 seconds from start
/var/log/nginx/error.log
2015/07/29 14:37:09 [error] 141#0: *2810 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: x.x.x.x, server: _, request: …Run Code Online (Sandbox Code Playgroud)