我遇到一个错误:
scala-block-indentation: Wrong type argument: number-or-marker-p, nil
Run Code Online (Sandbox Code Playgroud)
每当我点击tab缩进时scala-mode.
我不知道代码出了什么问题,但想要修复它.但是,我只能在*Message*没有详细信息的缓冲区中看到此错误.我试图在Backtrace中看到这个错误,但不知道如何.我尝试(1)-debug-init启动emacs(2)debug-on-entry命令,scala-block-indentation但它们都不起作用.
有没有人有关于如何为此功能启用BackTrace/Debugger的想法?
在 emacs 中(使用run-python命令调用python3):
>>> sys.version
sys.version
'3.2.3 (v3.2.3:3d0686d90f55, Apr 10 2012, 11:25:50) \n[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)]'
>>> sys.getdefaultencoding()
sys.getdefaultencoding()
'utf-8'
>>> data
data
'sp\xe4m'
>>> print(data)
print(data)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
UnicodeEncodeError: 'ascii' codec can't encode character '\xe4' in position 2: ordinal not in range(128)
Run Code Online (Sandbox Code Playgroud)
在终端:
~$python3
Python 3.2.3 (v3.2.3:3d0686d90f55, Apr 10 2012, 11:25:50)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type …Run Code Online (Sandbox Code Playgroud) 我只是想知道为什么这在Clang 4.0中有效:
unsigned cnt = 42;
int k[cnt];
Run Code Online (Sandbox Code Playgroud)
但这不会:
unsigned cnt = 42;
string bad[cnt];
Run Code Online (Sandbox Code Playgroud)
我刚刚查看了C++入门第5版.它说:
必须在编译时知道维度,这意味着维度必须是常量表达式
如果这是真的,为什么要int k[cnt];工作?
代码是这样的,它输出1:
int main(int argc, char *argv[])
{
vector <const char*> vec = {"nima","123"};
vector <const char*> vec2 = {"nima","123"};
auto result = equal(vec.cbegin(), vec.cend(), vec2.cbegin());
cout << result << endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我知道我只能通过使用来测试两个c风格的字符串是否相等strcmp(因为char*不是我所理解的对象).但这equal是一个功能<algorithm>.它是否会使==运算符超载,以便它可以测试两者的相等性char*?
@Damon说他们是相同的,因为我将同一个字符串文字合并到同一个地址中,正如我所理解的那样.但是,当我尝试char*使用不同的地址时,它仍然给出了相同的结果:
int main(int argc, char *argv[])
{
char* k = "123";
char* b = "123";
vector <const char*> vec = {"nima"};
vector <const char*> vec2 = {"nima"};
cout << &k …Run Code Online (Sandbox Code Playgroud) 我在这样的Racket中试过它
> (apply and '(1 2 3))
. and: bad syntax in: and
> (and 1 2 3)
3
Run Code Online (Sandbox Code Playgroud)
有没有人有这个想法?
例如,如果我对几个外键使用过滤器,如下所示:
list_filter = ['status', 'species__name', 'factor__name', 'factor__type', ]
Run Code Online (Sandbox Code Playgroud)
将有两个过滤器,其名称在管理站点上显示为“名称”。

有谁知道如何解决这个问题?(给他们不同的名字。)
我认为django.contrib.admin.SimpleListFilter可能是一个解决方案,但考虑到我有 10 多个字段,例如xxx__name. 可能有点笨拙..
在Java中,程序从类的静态main方法开始.但是在Scala中,它从对象的主要方法开始.
有谁知道这样设计的合理性?
Scala还提供了一个叫做的特征App,main如果一个对象扩展了这个特征,它可以替换方法.有没有人有关于哪一个(App或main)是首选方式的想法?
谢谢!
例如,我必须写一个这样的别名:
addCommandAlias("make-idea", ";updateClassifiers; updateSbtClassifiers; gen-idea sbt-classifiers")
Run Code Online (Sandbox Code Playgroud)
代替
addCommandAlias("make-idea", "updateClassifiers; updateSbtClassifiers; gen-idea sbt-classifiers")
Run Code Online (Sandbox Code Playgroud)
如果我跳过第一个分号,sbt会抱怨..有没有人有关于;第二个参数中的第一个是什么的想法addCommandAlias?
代码如下:
scala> def f(x:Int => Unit):Unit = 1
<console>:7: warning: a pure expression does nothing in statement position; you may be omitting necessary parentheses
def f(x:Int => Unit):Unit = 1
^
f: (x: Int => Unit)Unit
scala> f(_=>2);
<console>:9: warning: a pure expression does nothing in statement position; you may be omitting necessary parentheses
f(_=>2);
^
scala> f(_=>List(1,2));
Run Code Online (Sandbox Code Playgroud)
上面的所有三个表达式都在REPL中工作(有一些警告),但它们看起来有点令人困惑.
在第一个表达式中,f's返回类型是Unit,AnyVal但是不是Supertype 的子类型Int,因此,我无法理解为什么1可以用作返回值.
在第二个表达式中,_=>2也使用2而不是Unit作为返回值,它与定义冲突.
在第三个表达式中,_=> …
if命令的条件结构如下所示:
if TEST-COMMANDS; then
CONSEQUENT-COMMANDS;
[elif MORE-TEST-COMMANDS; then
MORE-CONSEQUENTS;]
[else ALTERNATE-CONSEQUENTS;]
fi
Run Code Online (Sandbox Code Playgroud)
while命令的循环结构如下所示:
while TEST-COMMANDS; do CONSEQUENT-COMMANDS; done
Run Code Online (Sandbox Code Playgroud)
我想知道为什么then需要if命令而不是while命令?为什么不能省略?