小编Jos*_*Lee的帖子

什么是"总和产品"数据结构?

对威廉库克Fusings最近的一篇博客中提到:

关键点在于Ensō中的结构被整体地视为图形,而不是单个值或传统的和产品数据结构.

他所指的传统的产品和产品数据结构是什么?

types type-systems programming-languages algebraic-data-types data-structures

44
推荐指数
3
解决办法
6274
查看次数

使用JavaScript删除URL中的片段w/out导致页面重新加载

背景:我有一个HTML页面,可以让您扩展某些内容.由于只需要加载页面的一小部分进行此类扩展,因此通过JavaScript完成,而不是通过指向新的URL/HTML页面.然而,作为奖励,用户能够永久链接到这样的扩展部分,即向其他人发送诸如的URL

http://example.com/#foobar

并为其他用户立即打开"foobar"类别.这使用parent.location.hash ='foobar',因此该部分很好.

现在的问题是:当用户在页面上关闭此类别时,我想再次清空URL片段,即将http://example.com/#foobar转到http://example.com/以更新永久链接显示.但是,这样做parent.location.hash = ''会导致重新加载整个页面(例如在Firefox 3中),我想避免这种情况.使用window.location.href = '/#'不会触发页面重新加载,但会在URL中留下一些看起来不太好看的"#"符号.那么在流行的浏览器中有没有一种方法可以删除包含"#"符号的URL锚点,而不会触发页面刷新?

html javascript url fragment-identifier

43
推荐指数
3
解决办法
5万
查看次数

按位不是运算符

为什么按位操作(~0);打印-1?在二进制中,不应该是1.为什么?

javascript c c++ java twos-complement

42
推荐指数
5
解决办法
5万
查看次数

window.location.hash的编码

是否window.location.hash包含url部分的编码或解码表示?

当我打开相同的URL(http://localhost/something/#%C3%BC其中,%C3%BC转化为ü在Firefox 3.5和Internet Explorer 8),我得到不同的值document.location.hash:

  • IE8: #%C3%BC
  • FF3.5:

有没有办法在两个浏览器中获得一个变体?

html javascript url encoding fragment-identifier

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

'...!= null'或'null!= ....'最佳表现?

我写了两种方法来检查性能

 public class Test1 {

 private String value;

 public void notNull(){
  if( value != null) {
    //do something
  }
}

public void nullNot(){
 if( null != value) {
  //do something
 }
}

}
Run Code Online (Sandbox Code Playgroud)

并在编译后检查它的字节码

public void notNull();
Code:
Stack=1, Locals=1, Args_size=1
0: aload_0
1: getfield #2; //Field value:Ljava/lang/String;
4: ifnull 7
7: return
LineNumberTable: 
line 6: 0
line 9: 7

StackMapTable: number_of_entries = 1
frame_type = 7 /* same */


public void nullNot();
Code:
Stack=2, Locals=1, Args_size=1
0: aconst_null
1: …
Run Code Online (Sandbox Code Playgroud)

java performance micro-optimization

41
推荐指数
4
解决办法
3万
查看次数

Math.random()返回大于1的值?

在JavaScript中使用随机数字时,我发现了一个令人惊讶的错误,可能是谷歌Chrome中的V8 JavaScript引擎.考虑:

// Generate a random number [1,5].
var rand5 = function() {
  return parseInt(Math.random() * 5) + 1;
};

// Return a sample distribution over MAX times.
var testRand5 = function(dist, max) {
  if (!dist) { dist = {}; }
  if (!max) { max = 5000000; }
  for (var i=0; i<max; i++) {
    var r = rand5();
    dist[r] = (dist[r] || 0) + 1;
  }
  return dist;
};
Run Code Online (Sandbox Code Playgroud)

现在,当我运行时,testRand5()我得到以下结果(当然,每次运行略有不同,您可能需要将"max"设置为更高的值以显示错误):

var d = testRand5();
d = {
  1: …
Run Code Online (Sandbox Code Playgroud)

javascript random google-chrome v8 parseint

40
推荐指数
3
解决办法
1万
查看次数

Common Lisp中的动态和词法变量

我正在阅读Peter Seibel撰写的"Practical Common Lisp"一书.

在第6章"变量"部分"词汇变量和闭包"和"动态,又称特殊,变量". http://www.gigamonkeys.com/book/variables.html

我的问题是两个部分中的示例都显示了(让...)如何影响全局变量,并没有真正说明动态和词汇变量之间的区别.

我理解闭包是如何工作的,但我真的不知道在这个例子中让我们如此特别:

(defvar *x* 10)

(defun foo ()
  (format t "Before assignment~18tX: ~d~%" *x*)
  (setf *x* (+ 1 *x*))
  (format t "After assignment~18tX: ~d~%" *x*))


(defun bar ()
  (foo)
  (let ((*x* 20)) (foo))
  (foo))


CL-USER> (foo)
Before assignment X: 10
After assignment  X: 11
NIL


CL-USER> (bar)
Before assignment X: 11
After assignment  X: 12
Before assignment X: 20
After assignment  X: 21
Before assignment X: 12
After assignment  X: 13
NIL
Run Code Online (Sandbox Code Playgroud)

我觉得这里没什么特别的.外FOO …

lisp common-lisp lexical-scope

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

"__method__"和"方法"之间的区别

有什么区别__method__,method_method__

是否有任何或一些随机的原因人们认为__doc__应该是正确的,而不是doc.是什么让一种方法比另一种更特别?

python methods

38
推荐指数
2
解决办法
8100
查看次数

为什么在C#中-3 == ~2

无法理解.为什么输出"平等"

码:

 if (-3 == ~2)           
    Console.WriteLine("equal");
 else
    Console.WriteLine("not equal");
Run Code Online (Sandbox Code Playgroud)

输出:

equal
Run Code Online (Sandbox Code Playgroud)

.net c# bitwise-operators twos-complement conditional-statements

37
推荐指数
2
解决办法
1716
查看次数

在Ruby中为什么nil.id返回4?

这已经困扰了我很长一段时间.

>> nil.id
(irb):2: warning: Object#id will be deprecated; use Object#object_id
=> 4
Run Code Online (Sandbox Code Playgroud)

为什么nil.id会是4?(或者如果你想对弃用方面挑剔,则为nil.object_id)

ruby

35
推荐指数
2
解决办法
4787
查看次数