问题列表 - 第11908页

将布尔检查提取到局部变量

有时我将布尔检查提取到局部变量中以实现更好的可读性.

你怎么看?

有什么缺点?

如果变量没有在其他地方使用,编译器是否为线路输入?我还想过用一个额外的块"{}"来缩小范围.

if (person.getAge() > MINIMUM_AGE && person.getTall() > MAXIMUM_SIZE && person.getWeight < MAXIMUM_WEIGHT) {
    // do something
}
Run Code Online (Sandbox Code Playgroud)
final boolean isOldEnough = person.getAge() > MINIMUM_AGE;
final boolean isTallEnough = person.getTall() > MAXIMUM_SIZE;
final boolean isNotToHeavy = person.getWeight < MAXIMUM_WEIGHT;

if (isOldEnough && isTallEnough && isNotToHeavy) {
    // do something
}
Run Code Online (Sandbox Code Playgroud)

java

1
推荐指数
1
解决办法
237
查看次数

密码的正则表达式

有些人可以通过以下规则给我正确的密码表达.

密码长度至少应为7个字符.它应包含最少3位数字和一个字母字符.密码可以接受任意次数的数字,字母,特殊字符,但数字应至少为3.

regex asp.net

0
推荐指数
1
解决办法
1749
查看次数

如何使GUI等待Windows服务?

我写了一个Windows服务和一个gui.当然gui主要取决于服务.gui有没有办法等待服务?有时我需要从gui重新加载服务配置并重新启动服务.

我正在考虑2个解决方案:1.使用while和sleep等待服务控制器状态改变(当然最简单的解决方案:P)2.在某处实现INotifiPropertyChanged接口(这对于这个琐碎的问题看起来很复杂).

我想知道有更优雅的方式吗?有什么事我在某个地方失踪吗?

c# windows-services

7
推荐指数
1
解决办法
3720
查看次数

在WebView中更改文本颜色?

有一种改变背景颜色但不改变字体的方法.
有任何想法吗?

android webview

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

线程安全的memoization

让我们以Wes Dyer的函数memoization方法为出发点:

public static Func<A, R> Memoize<A, R>(this Func<A, R> f)
{
  var map = new Dictionary<A, R>();
  return a =>
    {
      R value;
      if (map.TryGetValue(a, out value))
        return value;
      value = f(a);
      map.Add(a, value);
      return value;
    };
}
Run Code Online (Sandbox Code Playgroud)

问题是,当从多个线程使用它时,我们可能会遇到麻烦:

Func<int, int> f = ...
var f1 = f.Memoize();
...
in thread 1:
var y1 = f1(1);
in thread 2:
var y2 = f1(1);
// We may be recalculating f(1) here!
Run Code Online (Sandbox Code Playgroud)

我们试着避免这种情况.锁定map:

public static Func<A, R> …
Run Code Online (Sandbox Code Playgroud)

c# multithreading locking memoization thread-safety

23
推荐指数
2
解决办法
4205
查看次数

如何动态显示/隐藏Facebook登录按钮

如果用户通过facebook连接登录我的网站,如何通过javascript确定?根据这个结果,我想<fb:login-button> 在网站上显示/不显示按钮.

如果我使用jquery做了类似的事情:

<div id="login"></div>

<script>
if (notLoggedIn)
{
   $("#login").html("<fb:login-button></fb>");
}
</script>
Run Code Online (Sandbox Code Playgroud)

它会起作用吗?

javascript jquery facebook

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

紧凑的数据结构,如集合

我正在寻找一个特定的数据结构,但我忘了它的名字.如果我知道它的名字将是微不足道的,我会在维基百科中查找:)

基本上,它就像一个集合 - 除了你不能迭代它.

你把一些值放进去,比方说80k邮政编码.

然后你可以测试一个给定的字符串肯定不是一个邮政编码,但如果插入太多的邮政编码,你最终会得到误报.

这种结构的内存消耗很小.

它的名字是什么,在java中有实现吗?

language-agnostic algorithm bloom-filter data-structures

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

Haskell中的N-queens没有列表遍历

我在网上搜索了Haskell中n-queens问题的不同解决方案,但找不到任何可以在O(1)时间内检查不安全位置的解决方案,就像你为/对角线保留一个数组而另一个用于\ diagonals.

我找到的大多数解决方案只是检查了所有以前的新女王.像这样的东西:http: //www.reddit.com/r/programming/comments/62j4m/nqueens_in_haskell/

nqueens :: Int -> [[(Int,Int)]]
nqueens n = foldr qu [[]] [1..n]
    where qu k qss = [ ((j,k):qs) | qs <- qss, j <- [1..n], all (safe (j,k)) qs ]
      safe (j,k) (l,m) = j /= l && k /= m && abs (j-l) /= abs (k-m)
Run Code Online (Sandbox Code Playgroud)

在Haskell中实现这种"O(1)方法"的最佳方法是什么?我不是在寻找任何"超级优化"的东西.只是某种方式来产生"这个对角线已经被使用了吗?" 数组以功能的方式.

更新:

感谢所有答案,伙计们!我最初问这个问题的原因是因为我想解决一个更难回溯的问题.我知道如何用命令式语言解决它,但不能轻易想到一个纯粹的功能数据结构来完成这项工作.我盘算了一下,皇后问题将是一个很好的模式(即对整个数据结构问题回溯问题:)),但它不是我的真正的,虽然问题.

我实际上想找到一个允许O(1)随机访问的数据结构,并保持处于"初始"状态(自由线/对角线,在n-queens情况下)或处于"最终"状态(被占用)的值线/对角线),转换(自由占用)为O(1).这可以使用命令式语言中的可变数组来实现,但我觉得更新值的限制​​只允许一个很好的纯函数数据结构(例如,与Quicksort相反,它真的需要可变数组).

我认为,在Haskell中使用不可变数组可以获得同样好的解决方案,而"main"函数看起来就像我想要的那样:

-- try all positions for a queen in row n-1
place :: BoardState -> …
Run Code Online (Sandbox Code Playgroud)

algorithm haskell functional-programming backtracking data-structures

17
推荐指数
2
解决办法
4064
查看次数

最好的重定向方法?

在PHP文件中,当我需要重定向用户并且已经发送了标题时,我不能使用php的标题函数,在这种情况下哪个是重定向用户的最佳方法?

无论用户浏览器品牌如何,最快,最可靠的方法?

echo '<script type="text/javascript">window.top.location="http://localhost/";</script>';

// OR

echo '<meta http-equiv="refresh" content="0;url=' .$location. '">';
Run Code Online (Sandbox Code Playgroud)

UPDATE

这是我现在使用的最终结果代码,如果标题已经发送到我无法重定向到主页,我只是将主页带给我,所以不包括正文页面,它将包括我的主页和页脚

function validlogin($url) {
    if (!isset($_SESSION['auto_id']) || ($_SESSION['auto_id']=='')) {
        $_SESSION['sess_login_msg'] = 'Please login';
        $_SESSION['backurl'] = $url;
        $temp = '';
        if (headers_sent() === false){
            header("Location: /");
            exit();
        }else{
            //header is already sent so we will just bring the homepage to us instead of going to it!!!
            include 'mainbody.inc.php';
            include 'footer.inc.php';
            exit();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

php redirect header

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

在.NET中使用'Type'和'Enum'作为参数

我正在尝试编写一个将字符串参数解析为枚举的方法.枚举的类型也由参数决定.这是我开始的:

public static type GetValueOrEmpty(string text, Type type)
{
    if (!String.IsNullOrEmpty(text))
    {
        return (type)Enum.Parse(typeof(type)value);
    }
    else
    {
        // Do something else
    }
}
Run Code Online (Sandbox Code Playgroud)

显然,由于多种原因,这不起作用.有没有办法可以做到这一点?

.net c# types

1
推荐指数
1
解决办法
784
查看次数