小编nmd*_*mdr的帖子

正则表达式:如何选择匹配开头或结尾的东西,但不是两者兼而有之?

我有这样的情况:正则表达式是这样的: ^b?A+b?$

因此b 可以在字符串的开头匹配0或1次,并且A 必须匹配一次或多次.再次b 可以在字符串结尾处匹配0或1次.

现在我想以这样的方式修改这个正则表达式,它可以匹配b字符串的开头或结尾,但不能同时匹配.

我该怎么做呢?

regex

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

如何在Exception堆栈中查找特定异常

让我们假设一个特定的异常" SomeException"是异常堆栈的一部分,

所以让我们假设ex.InnerException.InnerException.InnerException是" SomeException" 的类型

C#中是否有任何内置API会尝试在异常堆栈中找到给定的异常类型?

例:

SomeException someExp = exp.LocateExceptionInStack(typeof(SomeException));
Run Code Online (Sandbox Code Playgroud)

c# api logic exception

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

TCPClient没有接收数据

我想使用StreamReader和StreamWriter通过TCPClient.NetworkStream接收和发送数据.代码如下所示:
客户端代码:

 using (TcpClient client = new TcpClient())
            {
                IPEndPoint localEndPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 9001);
                client.Connect(localEndPoint);
                client.NoDelay = true;

                using(NetworkStream stream = client.GetStream())
                {                    
                    using (StreamWriter writer = new StreamWriter(stream))
                    {
                        writer.AutoFlush = true;
                        using (StreamReader reader = new StreamReader(stream))
                        {    

                            string message = "Client says: Hello";
                            writer.WriteLine(message);

                // If I comment the line below, the server receives the  first message
                // otherwise it keeps waiting for data
                           string response = reader.ReadToEnd();
                           Console.WriteLine(response);
                        }
                       ;
                    }
                }
            }
Run Code Online (Sandbox Code Playgroud)


注意:如果我评论reader.ReadToEnd(); 然后服务器接收消息,否则服务器继续等待来自客户端的数据.ReadToEnd是问题吗? …

c# tcpclient

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

takeWhile在JavaScript中实现 - 寻找更好的想法

Haskell有一个takeWhile功能:

Prelude> takeWhile odd [1,3,5,7,8,9]
[1,3,5,7]
Run Code Online (Sandbox Code Playgroud)

只要应用谓词函数结果,它就会从列表中"获取"元素True.它变成了False,它停止了.

我们该如何实施呢?

这是我提出的Haskell递归方法:

takewhile::(a->Bool)->[a]->[a]
takewhile _ [] = []
takewhile f (x:xs) | f x == True = x : takewhile f xs
                   | otherwise = []
Run Code Online (Sandbox Code Playgroud)

只要谓词f xTrue,它就会一直调用自身,否则它会返回一个空列表而不会调用它自己.

我可以为JavaScript提出以下实现.它有点冗长,并调用定义另一个函数来传递中间结果:

function takeWhile(f, xs) {
 return take(f, xs, [])
}

function take(f, xs, arr) {
 if(!xs || xs.length === 0) {
 return arr
 }
 x = xs.shift()
 if(f(x)) {
   arr.push(x)
   return take(f, xs, arr)
 } …
Run Code Online (Sandbox Code Playgroud)

javascript recursion haskell

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

列表框项前景问题

我遇到了一个我的XBAP(WPF浏览器应用程序)项目的问题:

这里我有两个列表框:

  • 一个包含文本内容的简单列表
  • 第二个包含每个项目的扩展器:

alt text http://i44.tinypic.com/117bpj4.jpg

现在,当我单击第一个列表框中的项目(在左侧)时,前景会变为白色,如果选择了另一个项目,则会变回黑色.

对于第二个列表框(右侧)中的项目,当我单击该项目时,前景保持黑色.这是因为文本内容本身包含在Expander控件中:

alt text http://i39.tinypic.com/124vn6u.jpg

现在,如何使Expander控件前景颜色与选择列表框项目/选择更改时的行为类似?是否有任何依赖属性可用于实现此目的?

注意:我希望第二个列表框(右)的行为与前景颜色的第一个(左)完全相似.

.net silverlight wpf listbox xbap

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

Haskell - 自定义类型的元组

我希望能够表示自定义类型的元组。我想出的内容如下:

type Name = String

data DataType a  = DataType a deriving Show

data Val a = Single (DataType a) | List [(DataType a)] deriving Show

data State a = State [(Name,(Val a))] deriving Show

append :: (Name, (Val a)) -> State a -> State a
append nv (State st) = State (st ++ [nv])
Run Code Online (Sandbox Code Playgroud)

现在的问题是 State 不能是 [("NUM1",Single (DataType 1)), ("STR1",Single (DataType "Hello"))]。我希望能够执行以下操作:

*Main> num1 = Single (DataType 1)
*Main> num1
Single (DataType 1)
*Main> str1 = Single (DataType …
Run Code Online (Sandbox Code Playgroud)

haskell

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

Haskell - 在另一个中使用一种数据类型

Haskell新手; 我希望能够宣布Val它可以是IntVal, StringVal FloatValList它可以是StringList, IntList, FloatList,它的元素是(相应的)StringVal, IntVal and FloatVal.我到目前为止的尝试:

data Val = IntVal Int
         | FloatVal Float
         | StringVal String deriving Show

data List = IntList [(IntVal Int)]
          | FloatList [(FloatVal Float)]
          | StringList [(StringVal String)] deriving Show
Run Code Online (Sandbox Code Playgroud)

失败并出现错误:

    Not in scope: type constructor or class ‘IntVal’
    A data constructor of that name is in scope; did you mean DataKinds?

   data List = IntList [(IntVal Int)]

... (similarly for StringVal, …
Run Code Online (Sandbox Code Playgroud)

haskell types

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

return nil, nil 不是惯用的 go 吗?

如果我们在 GO 中有以下方法:

GetCustomer(id string) (*Customer, error)
Run Code Online (Sandbox Code Playgroud)

数据库中可能不存在给定 ID 的客户。当没有找到客户时,代码可以

return nil, nil
Run Code Online (Sandbox Code Playgroud)

这在 Go 中被认为是糟糕的编码实践吗?或者惯用的 Go 代码看起来像

 return nil, errCustomerNotFound
Run Code Online (Sandbox Code Playgroud)

我在第二种方法中看到的问题是您最终会检查此特定错误并单独处理它。

Go 源代码或库中是否有出现这种情况并且首选其中一种方法的示例?

更新

如果return nil, nil被认为是不惯用的。我想知道为什么在这种情况下这是真的?由于 *Customer 是一个指针,我想返回 nil 来表示没有值

error-handling idioms go

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