我刚刚下载了NHibernate的Linq提供程序,我只是有点兴奋.但我不太了解Linq语法.
我可以从这样的查询中返回整个对象:
var query = from foo in session.Linq<Kctc.BusinessLayer.Domain.Case>()
where foo.CaseNumber > 0
select foo;
Run Code Online (Sandbox Code Playgroud)
我可以选择这样一个属性:
var query = from foo in session.Linq<Kctc.BusinessLayer.Domain.Case>()
where foo.CaseNumber > 0
select foo.Id;
Run Code Online (Sandbox Code Playgroud)
但是我如何选择两个属性,例如foo.Id和foo.Bar?或者那是不可能的?
谢谢
大卫
我将尝试用一些例子来解释我的意思:
这没什么大不了的,但仍然让我头痛欲绝.
Ok so i want to build an Excel plugin (custom task pane) that'll act on the selected range in the active worksheet.
Can't find any examples or documentation on how.
How can I redirect all requests (irrespective of what page is being requested) on sub.domain.com to newdomain.com? Currently I have
Redirect 301 / http://www.newdomain.com/
Run Code Online (Sandbox Code Playgroud)
When a requests comes in for domain.com/shop/product the redirect goes to newdomain.com/shop/product while it should just go to newdomain.com
I'm trying to understand the syntax used in STL for a class. Our teacher pointed us to this website (http://www.sgi.com/tech/stl/Map.html) where I copied the code below:
struct ltstr
{
bool operator()(const char* s1, const char* s2) const
{
return strcmp(s1, s2) < 0;
}
};
int main()
{
map<const char*, int, ltstr> months;
months["january"] = 31;
months["february"] = 28;
months["march"] = 31;
months["april"] = 30;
months["may"] = 31;
months["june"] = 30;
months["july"] = 31;
months["august"] = 31;
months["september"] …Run Code Online (Sandbox Code Playgroud) Scala博客最近对类型类模式似乎有很多热情,其中一个简单的类通过符合某些特征或模式的附加类添加了功能.作为一个极其简单的例子,简单的类:
case class Wotsit (value: Int)
Run Code Online (Sandbox Code Playgroud)
可以适应Foo的特点:
trait Foo[T] {
def write (t: T): Unit
}
Run Code Online (Sandbox Code Playgroud)
借助此类型类:
implicit object WotsitIsFoo extends Foo[Wotsit] {
def write (wotsit: Wotsit) = println(wotsit.value)
}
Run Code Online (Sandbox Code Playgroud)
类型类通常在编译时捕获,带有隐含,允许Wotsit及其类型类一起传递到更高阶函数:
def writeAll[T] (items: List[T])(implicit tc: Foo[T]) =
items.foreach(w => tc.write(w))
writeAll(wotsits)
Run Code Online (Sandbox Code Playgroud)
(在你纠正我之前,我说这是一个过于简单的例子)
但是,使用implicits假定在编译时已知项的精确类型.我发现在我的代码中经常不是这样的:我将列出某种类型的项目List [T],并且需要发现正确的类型类来处理它们.
Scala的建议方法似乎是在调用层次结构的所有点添加类型类参数.这可能会因为代码规模而变得烦人,并且这些依赖关系需要通过越来越长的链传递,通过它们越来越无关紧要的方法.这使得代码变得混乱并且难以维护,与Scala的相反.
通常,这是依赖注入将介入的地方,使用库在需要的时间点提供所需的对象.详细信息因为DI选择的库而异 - 我过去在Java中编写了自己的库 - 但通常注入点需要精确定义所需的对象.
麻烦的是,在类型类的情况下,在编译时不知道精确值.必须根据多态描述选择它.而且至关重要的是,类型信息已被编译器删除.清单是Scala的类型擦除解决方案,但我不清楚如何使用它们来解决这个问题.
Scala的哪些技术和依赖注入库会被人们建议作为解决这个问题的方法?我错过了一招吗?完美的DI库?或者这真的是它似乎的关键点吗?
我认为这有两个方面.在第一种情况下,需要类型类的点是通过直接函数调用从其操作数的确切类型已知的点到达的,因此足够的类型争论和语法糖可以允许类型类传递给指出它是必要的.
在第二种情况下,这两个点由屏障隔开 - 例如无法更改的API,或存储在数据库或对象存储中,或序列化并发送到另一台计算机 - 这意味着类型类可以' t与其操作数一起传递.在这种情况下,给定一个只在运行时知道其类型和值的对象,需要以某种方式发现类型类.
我认为函数式程序员习惯于假设第一种情况 - 使用足够先进的语言,操作数的类型总是可以知道的.David和mkniessl为此提供了很好的答案,我当然不想批评这些.但第二种情况确实存在,这就是我将依赖注入带入问题的原因.
我有一个CSS文件,当我使用gedit打开它时看起来很好,但是当它被PHP读取(将所有CSS文件合并为一个)时,这个CSS前面有以下字符:
PHP删除所有空格,因此代码中间的随机会弄乱整个事物.正如我所提到的,当我在gedit中打开文件时,我实际上看不到这些字符,因此我无法轻易删除它们.
我搜索了问题,文件编码显然有问题,这是有道理的,因为我已经通过ftp和rsync将文件转移到不同的Linux/Windows服务器,并使用一系列文本编辑器.我不太了解字符编码,所以请帮助.
如果有帮助,文件将以UTF-8格式保存,gedit将不允许我以ISO-8859-15格式保存(该文档包含一个或多个无法使用指定字符编码进行编码的字符).我尝试用Windows和Linux行结尾保存它,但都没有帮助.
我有一个包含八个模块和大约 500 个 Java KLines 的 IntelliJ 项目。我在依赖于所有其他模块的模块中添加了一个 Scala Facet。
在 IntelliJ IDEA 9.0.2 中编译HelloWorld.scala时:
object HelloWorld {
def main(args: Array[String]) {
println("Hello World!")
}
}
Run Code Online (Sandbox Code Playgroud)
我在消息面板中得到以下输出:
Information:Compilation completed with 32 errors and 0 warnings
Information:32 errors
Information:0 warnings
Error:Scalac internal error: class java.lang.reflect.InvocationTargetException [sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method), sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39), sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25), java.lang.reflect.Method.invoke(Method.java:597), org.jetbrains.plugins.scala.compiler.rt.ScalacRunner.main(ScalacRunner.java:74)][scala.tools.nsc.typechecker.Typers$class.newTyper(Typers.scala:68), scala.tools.nsc.Global$analyzer$.newTyper(Global.scala:295), scala.tools.nsc.typechecker.Namers$Namer.<init>(Namers.scala:68), scala.tools.nsc.typechecker.Namers$NormalNamer.<init>(Namers.scala:43), scala.tools.nsc.typechecker.Namers$class.newNamer(Namers.scala:44), scala.tools.nsc.Global$analyzer$.newNamer(Global.scala:295), scala.tools.nsc.typechecker.Namers$Namer$$anonfun$enterSyms$1.apply(Namers.scala:258), scala.tools.nsc.typechecker.Namers$Namer$$anonfun$enterSyms$1.apply(Namers.scala:256), scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:61), scala.collection.immutable.List.foreach(List.scala:45), scala.tools.nsc.typechecker.Namers$Namer.enterSyms(Namers.scala:256), scala.tools.nsc.typechecker.Namers$Namer.enterSym(Namers.scala:347), scala.tools.nsc.typechecker.Analyzer$namerFactory$$anon$1.apply(Analyzer.scala:39), scala.tools.nsc.Global$GlobalPhase$$anonfun$applyPhase$1.apply(Global.scala:276), scala.tools.nsc.Global$GlobalPhase$$anonfun$applyPhase$1.apply(Global.scala:276), scala.tools.nsc.reporters.Reporter.withSource(Reporter.scala:48), scala.tools.nsc.Global$GlobalPhase.applyPhase(Global.scala:276), scala.tools.nsc.Global$GlobalPhase$$anonfun$run$1.apply(Global.scala:252), scala.tools.nsc.Global$GlobalPhase$$anonfun$run$1.apply(Global.scala:252), scala.collection.Iterator$class.foreach(Iterator.scala:631), scala.collection.mutable.ListBuffer$$anon$1.foreach(ListBuffer.scala:304), scala.tools.nsc.Global$GlobalPhase.run(Global.scala:252), scala.tools.nsc.Global$Run.compileSources(Global.scala:733), scala.tools.nsc.Global$Run.compile(Global.scala:813), scala.tools.nsc.Main$.process(Main.scala:108), scala.tools.nsc.Main$.main(Main.scala:122), scala.tools.nsc.Main.main(Main.scala), sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method), …Run Code Online (Sandbox Code Playgroud) 我正在看List,我看到一个带有一些重载的BinarySearch方法,我不禁想知道在List中有这样的方法是否有意义?
除非列表已排序,否则为什么我要进行二进制搜索?如果列表没有排序,调用该方法只会浪费CPU时间.在List上使用该方法有什么意义?