我正在努力学习mips装配.为此,我写了一个非常简单的c程序......
int main(){}
Run Code Online (Sandbox Code Playgroud)
...并在mips机器上使用-S选项将其编译为gcc以生成汇编代码.以下是main函数的开头:
.ent main main: .frame $fp,8,$31 .mask 0x40000000,-8 .fmask 0x00000000,0
然后我试着通过查看gas的文档来弄清楚这一切是什么意思,但我找不到任何这些指令.那他们是什么意思?我在哪里可以找到更多信息?
最近我想在一个小项目中尝试Scala 2.9中的一些新功能.我想用maven来构建它.我如何告诉Maven使用最新的每晚Scala 2.9版本?如果有人知道如何用sbt而不是maven来做这件事,那也会很好.
要么我使用谷歌太愚蠢,要么到目前为止没有其他人遇到过这个问题.
我正在尝试编译以下代码:
public interface MyClass {
public class Util {
private static MyClass _this;
public static <T extends MyClass> T getInstance(Class<T> clazz) {
if(_this == null) {
try {
_this = clazz.newInstance();
} catch(Exception e) {
e.printStackTrace();
}
}
return _this;
}
}
}
Run Code Online (Sandbox Code Playgroud)
然而,在"返回_this;"行中 我收到错误"类型不匹配:无法从MyClass转换为T"为什么会这样?T扩展了MyClass,问题出在哪里?如果我将线路改为"return(T)_this;",我只是得到关于未经检查的演员的警告,但我不喜欢警告;-)有没有办法实现我想要的没有错误或警告?
$ scala -Xexperimental
Welcome to Scala version 2.9.0.1 (OpenJDK Server VM, Java 1.6.0_22).
Type in expressions to have them evaluated.
Type :help for more information.
scala> class D extends Dynamic {
| def invokeDynamic(s:String)(args:Any*) = println(s)
| def doo() = { this hello }
| }
dynatype: this.applyDynamic("hello")()
dynatype: this.applyDynamic("applyDynamic")
...
Run Code Online (Sandbox Code Playgroud)
这重复了几十次......
...
dynatype: this.applyDynamic("applyDynamic")
java.lang.StackOverflowError
at scala.tools.nsc.symtab.Types$TypeMap$$anonfun$mapOverArgs$1.apply(Types.scala:3107)
at scala.tools.nsc.symtab.Types$TypeMap$$anonfun$mapOverArgs$1.apply(Types.scala:3103)
at scala.tools.nsc.symtab.Types$class.map2Conserve(Types.scala:4867)
at scala.tools.nsc.symtab.SymbolTable.map2Conserve(SymbolTable.scala:13)
at scala.tools.nsc.symtab.Types$TypeMap.mapOverArgs(Types.scala:3103)
at scala.tools.nsc.symtab.Types$TypeMap.mapOver(Types.scala:3010)
at scala.tools.nsc.symtab.Types$ApproximateDependentMap$.apply(Types.scala:3594)
at scala.tools.nsc.symtab.Types$ApproximateDependentMap$.apply(Types.scala:3591)
at scala.tools.nsc.symtab.Types$TypeMap$$anonfun$16.apply(Types.scala:3125)
at scala.tools.nsc.symtab.Types$TypeMap$$anonfun$16.apply(Types.scala:3122)
at scala.collection.LinearSeqOptimized$class.exists(LinearSeqOptimized.scala:79)
at scala.collection.immutable.List.exists(List.scala:45) …
Run Code Online (Sandbox Code Playgroud) 我是Scala的新手,目前正在学习Scala中的类型参数,我遇到了以下情况.
假设我有2类A
和B
,其中B
是的子类型A
.
class A {
...
}
class B extends A {
...
}
Run Code Online (Sandbox Code Playgroud)
所以我可以说B <: A
.
这也意味着List[B] <: List[A]
什么?
假设我们想要require
在Scala中构建一个类似于许多脚本语言的功能.
如果我们需要像这样的图书馆......
require("some-library.jar")
Run Code Online (Sandbox Code Playgroud)
...当执行require宏时,我们需要一种方法将此jar添加到编译器的类路径中.如何才能做到这一点?
是否有一种方法可以在firefox的新选项卡中以编程方式打开URL而无需获得焦点?
到目前为止我发现了什么:
firefox -new-window <URL>
让ff留在后台,但打开一个新窗口而不是标签.
firefox -new-tab <URL>
在新标签页中打开<URL>,但将焦点放在ff上.
编辑:我想要完成的是使爪子中的feed阅读器插件在后台打开firefox中的东西,这样我就可以浏览我的feed并打开我感兴趣的所有内容,然后实际阅读所有内容.哦,我应该提一下,只有linux/gnome解决方案才行.
这篇Linux Magazine文章http://www.linux-mag.com/id/792解释了与Solaris等商业Unix相比,Linux中线程的实现方式的差异.总之,Linux使用用户线程到内核线程的一对一映射,而Solaris使用多对多映射.本文暗示这可能会使Solaris具有性能优势,尤其是在线程之间切换时.在我花时间测试这个之前,还有人已经做过吗?
有人可以向我解释为什么ArrayBuffer的padTo方法不能像我期望的那样工作吗?在这个例子中,我希望toArray创建的数组的长度为10.
scala> val b = new scala.collection.mutable.ArrayBuffer[Byte]
b: scala.collection.mutable.ArrayBuffer[Byte] = ArrayBuffer()
scala> b.append(2)
scala> b
res1: scala.collection.mutable.ArrayBuffer[Byte] = ArrayBuffer(2)
scala> b.append(2)
scala> b
res3: scala.collection.mutable.ArrayBuffer[Byte] = ArrayBuffer(2, 2)
scala> b.padTo(10,0)
res4: scala.collection.mutable.ArrayBuffer[AnyVal] = ArrayBuffer(2, 2, 0, 0, 0, 0, 0, 0, 0, 0)
scala> b.toArray
res5: Array[Byte] = Array(2, 2)
Run Code Online (Sandbox Code Playgroud) 在scala中,成员函数是否默认为虚拟?在这件事上它与Java不同吗?
当一个方法被覆盖时,你必须明确说明,但没有"虚拟".
scala ×6
generics ×2
arraybuffer ×1
arrays ×1
assembly ×1
classpath ×1
collections ×1
command-line ×1
directive ×1
dynamic ×1
firefox ×1
java ×1
jvm ×1
linux ×1
macros ×1
maven ×1
methods ×1
mutable ×1
overriding ×1
performance ×1
pthreads ×1
sbt ×1
scala-2.10 ×1
scala-2.9 ×1
solaris ×1
tabs ×1
variance ×1
virtual ×1