我听说过这里讨论的"快速反平方根",我想将它放在我的Java程序中(仅用于研究目的,因此忽略有关本机库的任何更快的事情).
我正在查看代码,而C代码直接将其float转换为int带有一些C指针魔法的代码.如果你试图在带有强制转换的Java中执行此操作,它就不起作用:java会截断浮动(正如您所期望的那样),并且您无法获取基元的指针(就像在C中一样).那你怎么做的?
请告诉我在F#中运行程序时如何暂停控制台窗口.
open System
let myList = [0..9]
let myFunction =
for n in myList do
Console.WriteLine(n)
myFunction
Run Code Online (Sandbox Code Playgroud) Java在被称为synthetic和的方法上有特殊的标记bridge.
JLS 13.1.7,"源代码中没有相应构造的Java编译器引入的任何构造都必须标记为合成的 ......"
因此,合成方法是由编译器生成的任何内容,而不是在源代码中表示,虽然在规范PDF中没有提到它,但是桥接方法用于类比检查泛型.(例如,Animal.interactWith(Creature c)获取一个桥接方法interactWith(Object c),该方法转换为Creature并调用另一个方法.)
我们有这个名为Bukkit的API,它可以提供稳定的访问权限来改变Minecraft服务器的工作方式.API的底层实现(aka vanilla Minecraft)的一个方面,我们几乎无法控制,最近被迫在版本1.6.1中从整数值更改为浮点值.为了避免另一个变化的困难,我们选择将所有API方法更改为doubles.
所以,例如:
public int getHealth();
public void setHealth(int health);
// Must now be
public double getHealth();
public void setHealth(double health);
Run Code Online (Sandbox Code Playgroud)
但是,和往常一样,我们希望使用以前版本编译的插件1.5.2尽可能地工作 - 这就是API的重点.
这setHealth是一个解决的问题,只是引入一个过载.目前,我们有一个名为的方法_INVALID_getHealth(V)I,它在实现编译时重命名(而不是 API编译)getHealth(V)I,这样就可以继续运行旧的插件.
但是,当有人试图扩展这些重命名方法的实现时,它们会从双重命名的方法中获得编译错误并覆盖.
有没有办法使用手动/工具插入的合成或桥接方法提供int和double返回,这不会导致尝试更改部分API实现的人的编译错误?
我们有一个Java IRC应用程序,允许用户执行任意PHP并获得结果.以下是此用途的一个示例:
btc: <php>$btc = json_decode(file_get_contents('https://btc-e.com/api/2/1/ticker'), true); $ticker = $btc['ticker']; echo "Current BTC Ticker: High: $".$ticker['high']." Low: $".$ticker['low']." Average: $" . $ticker['avg'];
Run Code Online (Sandbox Code Playgroud)
我们也有一个python设置,但是我们喜欢PHP,因为PHP在任何地方都不需要代码中的换行符.(因为这是IRC,我们不能给它换行,除非我们执行一个web加载的.py文件)
问题是如何防止人们试图利用系统,例如:
<php>echo readfile("/etc/passwd");
Run Code Online (Sandbox Code Playgroud)
显然,这将读出所有人看到的passwd文件.
在我们尝试阻止readfile()之后,我们也遇到了这个问题:
<php>$rf = readfile; echo $rf("/etc/passwd");
Run Code Online (Sandbox Code Playgroud)
我们该如何保护这个系统?(完整代码在github上,对于任何感兴趣的人:https://github.com/clone1018/Shocky)
顺便说一句,没有真正的敏感信息被曝光,因为整个事情都在VM中,因此它不是"定时炸弹"或任何东西.我们仍然想把它锁定.
Google Apps Script 脚本中的最大递归深度是多少?我有一个函数 ,match_recurse它看起来像下面的伪代码:
function match_recurse(array) {
for (i=0, i<3, i++) {
var arr2 = array.copy().push(i);
if (is_done(arr2)) break;
match_recurse(arr2);
}
}
Run Code Online (Sandbox Code Playgroud)
(它也返回它的结果,但我不想夸大这个问题。)
现在,因为执行出错,执行记录和日志没有保存,所以我无法知道我的is_done函数是否在做错工作。我可以在纸上做一些问题的案例并检查递归深度,但我不知道最大值应该是多少。
在网上看,我看到一篇文章提到如果你通过Window对象,IE的最大调用堆栈为13,但没有别的。
有关闭包的一般解释,请参阅JavaScript 闭包如何工作?
Go 闭包在内存中究竟是如何布局的?
以下面的函数为例:
type M int
func (m *M) Adder(amount int) func() {
return func() {
*m = *m + amount
}
}
Run Code Online (Sandbox Code Playgroud)
当我们的代码调用 时a := m.Adder(),堆上分配了多少内存,它是什么样子的?返回func()值占用多少内存(无论它最终在内存中的哪个位置)?
对于10个整数的列表,有10个!可能的订单或排列.为什么random.shuffle仅在5000次尝试后会给出重复项?
>>> L = range(10)
>>> rL = list()
>>> for i in range(5000):
... random.shuffle(L)
... rL.append(L[:])
...
>>> rL = [tuple(e) for e in rL]
>>> len(set(rL))
4997
>>> for i,t in enumerate(rL):
... if rL.count(t) > 1:
... print i,t
...
102 (7, 5, 2, 4, 0, 6, 9, 3, 1, 8)
258 (1, 4, 0, 2, 7, 3, 5, 9, 6, 8)
892 (1, 4, 0, 2, 7, 3, 5, 9, 6, 8)
2878 (7, 5, …Run Code Online (Sandbox Code Playgroud) 我想用.bat运行jar文件(jar文件似乎不想自己打开,但现在是另一个问题),但是由于java文件运行了很长时间,命令提示符仍然保持打开状态(.bat / .jar仍在运行时)
我不想这样。
我读过某处可以使用.cmd文件和以下命令的地方:
cmd /c bat.bat
exit
Run Code Online (Sandbox Code Playgroud)
在没有命令提示符的情况下运行bat文件。但这对我不起作用。当我单击.cmd程序时,它只是打开一个命令promopt,并不断循环打印“ cmd / c bat.bat exit”。
我在做什么错,我的.cmd命令错了吗?还有另一种方法可以在不打开命令提示符的情况下运行.bat吗?
非常感谢。
我即将用 CLINT 编写我自己的 RV32I 内核。然而,有一些事情对我来说并不完全清楚。至少我在文档中找不到它。以下是特权 isa 规范对 ecall/ebreak 的说明:
ECALL 和 EBREAK 导致接收特权模式的 epc 寄存器被设置为 ECALL 或 EBREAK 指令本身的地址,而不是后续指令的地址。
所以这意味着,为 mret 设置正确的 mepc 是 SW 处理程序的责任。我认为这种行为也适用于所有其他例外。
异步中断呢?硬件是否自动将 mepc 设置为 PC+4?从我在不同软件处理程序中看到的情况来看,似乎是这样,但实际上我在文档中找不到它。
希望有人能指出我正确的文档。
我希望在独立的HTML文件中使用它:http://jsfiddle.net/J8XaX/2/
我的脚本是:
var divs = $('.fademe');
$(window).on('scroll', function() {
var st = $(this).scrollTop();
divs.css({ 'opacity' : (1 - st/130) });
});
Run Code Online (Sandbox Code Playgroud)
我尝试过这些包含,但它们都不起作用:
<script type='text/javascript' src='http://code.jquery.com/jquery-1.7.1.js'></script>
<script type='text/javascript' src='http://code.jquery.com/jquery-1.7.1.min.js'></script>
<script src="http://code.jquery.com/jquery-latest.js"></script>
Run Code Online (Sandbox Code Playgroud)
有什么建议?
编辑:它被包装.我的HTML中的脚本是:
<script type='text/javascript'>
$(document).ready(function(){
var divs = $('.fademe');
$(window).on('scroll', function() {
var st = $(this).scrollTop();
divs.css({ 'opacity' : (1 - st/700) });
});
</script>
Run Code Online (Sandbox Code Playgroud)
它适用于jsFiddle,但不是当我尝试将其视为自己的HTML页面时