假设你提示用户输入用的组合putStr和getLine:
main = do
putStrLn "A line with line termination" -- printed correctly
putStr "A line without line termination, e.g. to prompt for input: " -- NOT printed
line <- getLine
putStrLn ("You entered: " ++ line)
Run Code Online (Sandbox Code Playgroud)
与Haskell相比,Frege不打印第二行(使用putStr而不是putStrLn).这种缺失冲洗的行为是否意图?
如果Frege偏离Haskell行为,我会认为它模仿Java的行为.概念上类似的例子:
public static void main(String[] args) {
System.out.println("A line with line termination");
System.out.print("A line without line termination, e.g. to prompt for input: ");
String line = new java.util.Scanner(System.in).nextLine();
System.out.println("You entered: " + line);
} …Run Code Online (Sandbox Code Playgroud) 在我的IntelliJ IDEA 15(build 143.382)中,通过"Code> Generate"调用的上下文菜单缺少"equals()和hashCode()"条目.如何配置上下文菜单内容以将其恢复?
我通过foreignobject以下方式在HTML中嵌入HTML :
var SvgWithForeignObject = React.createClass({
render: function() {
return(
<svg>
<foreignobject><div>Hello From SVG</div></foreignobject>
</svg>
)
}
});
ReactDOM.render( < SvgWithForeignObject / > ,
document.getElementById('container')
);Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>
<div id="container">
<!-- This element's contents will be replaced with your component. -->
</div>Run Code Online (Sandbox Code Playgroud)
不呈现"Hello From SVG"字符串.但是,我可以在Chrome或FF中进行小的空格编辑,然后它变得可见:
(注意:屏幕录制来自我通过Scala.js使用React的示例,但行为与普通的React完全相同)
我有两个val,一个condition和一个option.请注意,这condition是一个简单的布尔值,不依赖于选项的值.
如果condition成立,我想映射选项以将其转换为结果值.在所有其他情况下,我想返回一个defaultResult.
这有效并且非常易读,但我不喜欢重复defaultResult:
val result = if (condition) {
option.map(valueToResult).getOrElse(defaultResult)
} else {
defaultResult
}
Run Code Online (Sandbox Code Playgroud)
我的第二种方法没有重复,但我不喜欢过滤器被滥用于实际上并不依赖于选项值的事实:
val result = option.filter(_ => condition).map(valueToResult).getOrElse(defaultResult)
Run Code Online (Sandbox Code Playgroud)
在Scala中有什么更惯用或更好的方法?
我的问题是关于奥德斯基的讲座3.5(不是作业!):
19:15的练习问:"这是什么类型:if (true) 1 else false"
在他的解释中,Odersky认为类型是AnyVal因为它是Int和Boolean(两个条件分支的类型)最具体的超类型.
我问自己为什么类型检查器不够智能,只能看到第一个分支实际上是相关的,因此可以推断出类型Int?
我正在研究使用 Retrofit2 和 RxJava 的 Java 8 REST 客户端设置。使用时GsonConverterFactory一切都会按预期进行。当切换到 a 时JacksonConverterFactory,我根本看不到任何结果(但也不例外)。根据日志,REST 调用本身是正常的。
GitHub上的完整示例。