我正在尝试为WoW编程一个插件(在lua中).这是一个基于特定单词的聊天过滤器.我无法弄清楚如何使这些单词的数组不区分大小写,以便该单词的任何大写/小写组合与数组匹配.任何想法将不胜感激.谢谢!
local function wordFilter(self,event,msg)
local keyWords = {"word","test","blah","here","code","woot"}
local matchCount = 0;
for _, word in ipairs(keyWords) do
if (string.match(msg, word,)) then
matchCount = matchCount + 1;
end
end
if (matchCount > 1) then
return false;
else
return true;
end
end
Run Code Online (Sandbox Code Playgroud) 有没有办法在sql server case/when语句中从"then"运行select语句?(我需要从then语句运行子查询.)我不能在where语句中使用它.
select
case @Group
when 6500 then (select top 10 * from Table1)
when 5450 then (select top 5 * from Table1)
when 2010 then (select top 3 * from Table1)
when 2000 then (select top 1 * from Table1)
else 0
end as 'Report'
Run Code Online (Sandbox Code Playgroud) 我试图在sql中的WHERE子句中实现类似下面的内容.
if (@zipCode ==null)
begin
([Portal].[dbo].[Address].Position.Filter(@radiusBuff) = 1)
end
else if(@zipCode !=null)
begin
([Portal].[dbo].[Address].PostalCode=@zipCode )
end
Run Code Online (Sandbox Code Playgroud)
我尝试了以下方法:
WHERE ((@zipCode IS NOT NULL AND ([Portal].[dbo].[Address].PostalCode=@zipCode)) OR (@zipCode IS NULL AND ([Portal].[dbo].[Address].Position.Filter(@radiusBuff) = 1)))
Run Code Online (Sandbox Code Playgroud)
这是错的.任何人都可以帮助构建确切的声明.谢谢!
在scala源代码中,我发现:
case object Nil extends List[Nothing] {
...
}
Run Code Online (Sandbox Code Playgroud)
我不明白为什么它被宣布为case object而不是object?
我发现这个问题[ 案例对象和对象之间的区别 ]是有用的,我猜这个原因是关键:
序列化的默认实现
因为我们经常将数据列表发送给另一个actor,所以Nil必须是可序列化的,对吧?
通过提供的答案(谢谢),我尝试编写一些代码来验证它:
trait MyList[+T]
object MyNil extends MyList[Nothing]
val list: MyList[String] = MyNil
list match {
case MyNil => println("### is nil")
case _ => println("### other list")
}
Run Code Online (Sandbox Code Playgroud)
你可以看到MyNil不是case object,但我仍然可以在模式匹配中使用它.这是输出:
### is nil
Run Code Online (Sandbox Code Playgroud)
我误解了什么吗?
是否有一种在Haskell中执行以下操作的有效方法:
case n of
0 -> doThis
1 -> doThat
2 -> doAnother
3..99 -> doDefault
Run Code Online (Sandbox Code Playgroud)
除了拥有97行"doDefault"之外?
作者R. Kent Dybvig在第86页的"The Scheme Programming Language,4th Edition"一书中,作者define-syntax为一个case接受其条件范围的语句编写了一个(Scheme宏).我以为我会在Clojure中尝试这个.
这是结果.
我怎样才能改善这个?我用:ii,:ie,:ei,和:ee用于运营商的范围,分别表示包含性的包容性,包容独占的,独占的包,以及异排他性的,.有更好的选择吗?
我选择扩展到一个cond而不是离散的if陈述,因为我觉得我将从cond宏的任何未来改进中获益.
(defmacro range-case [target & cases]
"Compare the target against a set of ranges or constant values and return
the first one that matches. If none match, and there exists a case with the
value :else, return that target. Each range consists of a vector containing
3 terms: a lower bound, …Run Code Online (Sandbox Code Playgroud) 有没有办法隐式调用case语句的对象上的方法?IE:
class Foo
def bar
1
end
def baz
...
end
end
Run Code Online (Sandbox Code Playgroud)
我希望能做的就是这样......
foo = Foo.new
case foo
when .bar==1 then "something"
when .bar==2 then "something else"
when .baz==3 then "another thing"
end
Run Code Online (Sandbox Code Playgroud)
...其中"when"语句正在评估case对象上方法的返回.这样的结构有可能吗?如果是这样的话,我一直无法弄清楚语法......
嘿伙计们,我正试图找出一个在案件中做一个NOT条款的理智方式.我这样做的原因是为了满足一个案例时的转码,即如果我点击avi,没有理由再把它变成avi,我可以把它移开(这就是它的范围)我的情况应该做的基础).无论如何,我有一些 我写的原型代码,它给出了我想要做的事情的要点.
#!/bin/bash
for i in $(seq 1 3); do
echo "trying: $i"
case $i in
! 1) echo "1" ;; # echo 1 if we aren't 1
! 2) echo "2" ;; # echo 2 if we aren't 2
! 3) echo "3" ;; # echo 3 if we aren't 3
[1-3]*) echo "! $i" ;; # echo 1-3 if we are 1-3
esac
echo -e "\n"
done
Run Code Online (Sandbox Code Playgroud)
预期的结果将是这样的
2 3 ! 1
1 3 …Run Code Online (Sandbox Code Playgroud) 我已经看过很多关于这个场景的问题/论坛帖子,但是我要么不理解解决方案,要么提供的解决方案对于那个特定问题太具体了,我不知道如何将它应用到我的情况中.我有以下查询:
SELECT DISTINCT d.*
FROM Data d
JOIN Customers c
ON c.Customer_Name = d.Customer_Name
AND c.subMarket = d.subMarket
JOIN Sort s
ON s.Market = c.Market
ORDER BY d.Customer_Name, d.Category, d.Tab, d.SubMarket,
CASE s.sortBy
WHEN 'Comp_Rank'
THEN d.Comp_Rank
WHEN 'Market_Rank'
THEN d.Market_Rank
ELSE d.Other_Rank
END
Run Code Online (Sandbox Code Playgroud)
我在MySQL数据库上使用了那个确切的查询,它运行得很好.我们最近切换到SQL Server数据库,现在它不起作用,我收到错误:
ORDER BY items must appear in the select list if SELECT DISTINCT is specified.
Run Code Online (Sandbox Code Playgroud)
我已经尝试将s.*添加到SELECT中(因为s.sortBy在CASE中)并且没有改变任何东西我也尝试列出Data中的每个字段并在SELECT中排序并且导致相同的精确错误.
数据中实际上没有重复,但是当我进行连接时,每个项目会产生4个完全重复的行,我不知道如何修复它,这就是我最初添加DISTINCT的原因.我尝试了LEFT JOIN,INNER JOIN等等的各种变化......并且无法获得不同的结果.无论如何,任何一个问题的解决方案都可以,但我假设需要更多信息才能找出JOIN重复问题.
编辑:我刚刚意识到我错误地输入了ORDER BY中的一些字段(例如,n.Category,n.Tab应该是d.Category,d.Tab).ORDER BY中的所有内容都来自我选择的数据表*.正如我所说,我也尝试列出SELECT中的每个字段,但没有帮助.
CASE test
WHEN NULL and SUBSTR(('99999999' - Tst_Date),1,4) > 2009 THEN 'Medi'
WHEN NULL and SUBSTR(('99999999' - Tst_Date),1,4) < 2009 THEN 'hills'
ELSE test
END AS "Phy"
Run Code Online (Sandbox Code Playgroud)
我在上述案例陈述中遗漏了什么吗?我一直在收到00905. 00000 - "缺少关键字"错误?