我有两个相同的字符串,一个在数组中,一个在String变量中.当我比较这些IDENTICAL字符串时,我每次都会得到错误.我已经调试和调试,但每次都得到相同的结果.这是有问题的代码
String temp = ""+(num1*num2);
Boolean equal = temp == answers[i];
if(equal) {
correct[i] = true;
num_correct ++;
}else{
correct[i] = false;
}
Run Code Online (Sandbox Code Playgroud)
我再次调试了这个程序的每个细节,我确信这些字符串是IDENTICAL.为什么Java在比较时返回false?
我有一张地图.在这张地图上,我想显示从几个表中收集的实时数据,其中一些表有惊人的行数.不用说,获取此信息需要很长时间.此外,涉及ping.根据脱机或远程服务器的不同,此数据的收集时间可能在1到10分钟之间.
我希望地图能够快速响应,所以我决定在我的数据库中添加一个新表,其中只包含地图所需的数据.这意味着我需要一个后台进程来持续更新新表中的信息.Cron作业当然是可能的,但我希望在前一个间隔完成后立即刷新数据.如果离线IP地址的数量突然激增并且循环运行的时间比Cron作业的间隔长,该怎么办?
我自己的解决方案是在PHP中创建一个由命令行运行的无限循环.此循环将刷新映射到MySQL的数据,并记录其他有用的数据,如循环时间和ping尝试失败等,然后在短暂停顿(几秒钟)后重新启动.
然而 - 人们一再告诉我,永远运行的PHP脚本是不好的.过了一会儿它会占用千兆字节的RAM(和其他可怕的东西)
部分我正在写这个问题,以确认这是否实际上是这样,但一些提示和技巧我将如何编写一个不泄漏内存的干净循环(如果可能的话)不会出错.关于此事的意见也将受到赞赏.
我觉得答案对我将标记为正确的问题有最大的启示.
我正在学习Python,我正在尝试这个with **** as ****:陈述.我认为它的工作方式与C#很相似using(****) {,但我担心我会跟踪过时的例子.
这是我的代码:
# -*- coding: iso-8859-1 -*-
import pprint
pow = 1, 2, 3
with pprint.pprint as pprint:
pprint(pow)
Run Code Online (Sandbox Code Playgroud)
我假设这里发生的事情是pprint在我的小闭包中是pprint.pprint函数的别名.我遇到了一个奇怪的错误:
Traceback (most recent call last):
File "test.py", line 7, in <module>
with pprint.pprint as pprint:
AttributeError: __exit__
Run Code Online (Sandbox Code Playgroud)
所以现在我想我正在使用旧版Python的语法,就像我之前做的那样(print "Hello")
为什么我的代码不按预期工作?
我收到此JavaScript错误
XMLHttpRequest无法加载http://foo.bar.no/API/map_tools/clean_addresses/check.Access-Control-Allow-Origin不允许来源http://foo.bar.no:9294.
这些都在同一个域和相同的服务器上,但我的JavaScript项目由一个独立的服务器脚本托管,该脚本自动将JavaScript及其依赖项捆绑到一个文件中.
在我开发的过程中如何克服这个限制?
我试过允许我的JavaScript服务器脚本连接.这是网址卷曲的结果:
HTTP/1.1 200 OK
Date: Wed, 11 Jan 2012 09:05:14 GMT
Server: Apache/2.2.16 (Debian)
Access-Control-Allow-Origin: http://foo.bar.no:9294
Vary: Accept-Encoding
Content-Length: 70
Content-Type: text/plain
array(1) {
["q"]=>
string(31) "map_tools/clean_addresses/check"
}
而且我仍然得到与上面粘贴完全相同的错误.为什么当显然允许时,Chrome仍然拒绝连接到该死的URL!?
使用标准库json模块似乎无法实现这一点.使用json.dumps它时会自动转义所有非ASCII字符,然后将字符串编码为ASCII.我可以指定它不会转义非ASCII字符,但是当它尝试将输出转换为ASCII时它会崩溃.
问题是 - 我不想要ASCII!我只想将我的JSON字符串作为unicode(或UTF-8)字符串.有没有方便的方法呢?
这是一个展示我想要的例子:
d = {'navn': 'Åge', 'stilling': 'Lærling'}
json.dumps(d, output_encoding='utf8')
# => '{"stilling": "Lærling", "navn": "Åge"}'
Run Code Online (Sandbox Code Playgroud)
但是当然,没有output_encoding这样的选项,所以这里是实际的输出:
d = {'navn': 'Åge', 'stilling': 'Lærling'}
json.dumps(d)
# => '{"stilling": "L\\u00e6rling", "navn": "\\u00c5ge"}'
Run Code Online (Sandbox Code Playgroud)
总而言之 - 我想将Python dict转换为UTF-8 JSON字符串而不会有任何转义.我怎样才能做到这一点?
我会接受以下解决方案:
dumps以达到预期效果)我在我的Mac上安装了Python 2.7作为Framework构建.我已经安装并确认wxPython适用于这个Python构建.但是当我使用virtualenv创建虚拟环境时,生成的Python可执行文件不是框架构建,或者至少不是根据wxPython:
This program needs access to the screen. Please run with a Framework build of python, and only when you are logged in on the main display of your Mac.
有任何想法吗?
我现在用谷歌搜索了这个问题,但我找不到一篇讨论Joomla速度的文章,而不是脚本和图像等外部资源的加载速度.我的Apache + PHP设置运行良好 - 启用了压缩,我正在使用本地虚拟机来运行它.问题在于服务器端的Joomla,我不知道如何追踪它的来源.
我本地Joomla设置上的页面总是需要2到3秒才能加载.根据Chrome开发者工具中的" 网络"标签,浏览器会等待HTML页面大约2秒钟,然后在大约0.3秒内加载所有外部资源.每个页面都是如此,甚至是管理员页面.这导致非常令人沮丧的页面浏览,因为每次链接点击后都会进行相当长的等待.为了说明,这是加载速度图的屏幕截图.蓝线是HTML页面:

什么是Joomla可以为每个请求处理2秒钟?Joomla这么慢,或者我的设置有问题吗?如果是这样,我该如何调试呢?
<?php phpinfo(); ?>只是为了确认所有PHP脚本都不受2s延迟的影响.他们不是.Application 0.000 seconds (+0.000); 0.81 MB (+0.807) - afterLoad Application 0.217 seconds (+0.217); 2.29 MB (+1.479) - afterInitialise Application 0.296 seconds (+0.079); 4.34 MB (+2.055) - afterRoute Application 0.640 seconds (+0.345); 5.59 MB (+1.247) - afterDispatch Application 0.705 seconds (+0.065); 5.85 MB (+0.266) - beforeRenderModule mod_menu (Main Menu) Application 0.774 seconds (+0.069); 5.91 MB (+0.053) - afterRenderModule …
我的Symfony 2应用程序的所有响应都有这个标题行:
Content-Type: text/html
Run Code Online (Sandbox Code Playgroud)
所以我的浏览器假设输出字符集是ISO-8859-1.我想标题说:
Content-Type: text/html; charset=utf8
Run Code Online (Sandbox Code Playgroud)
代替.我知道我可以为每个响应手动执行此操作:
$response->setCharset('UTF-8');
Run Code Online (Sandbox Code Playgroud)
但这将是非常多余的,因为我的应用程序有很多控件,只能输出UTF-8.我徒劳地搜索了一个控制默认字符集的Symfony配置设置.我发现framework.charset但这似乎是无关的,无论如何默认是UTF-8.
如何让Symfony在所有响应中指定我的字符集?
我知道这不是一个问题(大多数时候),因为我可以在HTML和XML中明确指定charset.问题是我服务纯文本或JSON,或者我正在使用转储变量var_dump.在这两种情况下,所有非ASCII符号都被扰乱,因为我的浏览器冒错了猜测.
我的备份解决方案是将响应类子类化并放入$this->setCharset('UTF-8')构造函数中.
我想知道是否可以将块传递给Proc.只是传递一个块Proc.call不起作用:
foo = Proc.new {
yield
}
foo.call {
puts "test"
}
Run Code Online (Sandbox Code Playgroud)
结果是:
LocalJumpError:没有给出块(yield)
lambdas也是如此.然而,这确实与方法对象的工作:
class Foo
def bar
yield
end
end
bar = Foo.new.method :bar
bar.call { puts "Success!" }
Run Code Online (Sandbox Code Playgroud)
结果是:
成功!
奇怪的是,在将方法对象转换为proc之后它仍然有效:
bar.to_proc.call { puts "Success!" }
Run Code Online (Sandbox Code Playgroud)
结果是:
成功!
那么为什么从一个块生成的Proc不接受块,但原来是一个方法的Proc呢?是否可以从接受块的块创建Proc?
假设我有一个带有一些"静态"变量的类.我希望该类的子类能够覆盖这些变量而不会影响原始类.使用类变量是不可能的,因为它们似乎在子类和超类之间共享:
class Foo
@@test = "a"
def speak; puts @@test; end
end
class Bar < Foo
@@test = "b"
end
Bar.new.speak
# b
Foo.new.speak
# b
Run Code Online (Sandbox Code Playgroud)
使用常量也是不可能的:
class Foo
TEST = "a"
def speak; puts TEST; end
end
class Bar < Foo
TEST = "b"
end
Bar.new.speak
# a
Foo.new.speak
# a
Run Code Online (Sandbox Code Playgroud)
超类中定义的方法忽略子类中的常量.
显而易见的解决方法是为需要"可覆盖"的变量定义方法:
class Foo
def test; "a"; end
end
Run Code Online (Sandbox Code Playgroud)
但这感觉就像一个黑客.我觉得这应该可以使用类变量,我可能只是做错了.例如,当我子类化时Object(默认情况下会发生这种情况):
class Foo < Object
@@bar = 123
end
Object.class_variable_get(:@@bar)
# NameError: uninitialized class variable @@bar in …Run Code Online (Sandbox Code Playgroud) php ×3
python ×3
ruby ×2
ajax ×1
arrays ×1
command-line ×1
comparison ×1
cron ×1
java ×1
javascript ×1
joomla ×1
json ×1
macos ×1
performance ×1
python-3.x ×1
string ×1
symfony ×1
virtualenv ×1
wxpython ×1