我一直在玩Swift,刚刚遇到一个问题。 我有以下字典: var locations:Dictionary<String,CLLocationCoordinate2D> = ["current":CLLocationCoordinate2D(latitude: lat, longitude: lng) ]; println("current locaition is \(locations["current"])") 但编译器抱怨current代表我的字典中的一个键的双引号。 我尝试用\逃脱它,但它不是正确的方式。 感谢任何帮助。
我一直认为Predef.println只是System.out.println一个快捷方式,但显然我错了,因为它似乎并没有使用System.out 。 为什么? 我该如何做Scala中System.out的“redirect”? scala> val baos = new java.io.ByteArrayOutputStream baos: java.io.ByteArrayOutputStream = scala> val ps = new java.io.PrintStream(baos) ps: java.io.PrintStream = java.io.PrintStream@6c5ac4 scala> System.setOut(ps) scala> println("hello") hello scala> new String(baos.toByteArray) res2: java.lang.String = "" scala> System.out.println("hello") scala> new String(baos.toByteArray) res7: java.lang.String = "hello "
如果我们想打印一些东西,我们可以这样做: import "fmt" func main(){ fmt.Println("Hello world!") } 但是我发现没有导入fmt就可以做同样的事情: func main(){ println("Hello world!") } 有人可以解释吗?
我已经实现了以下方法和unit testing: use std::fs::File; use std::path::Path; use std::io::prelude::*; fn read_file(path: &Path) { let mut file = File::open(path).unwrap(); let mut contents = String::new(); file.read_to_string(&mut contents).unwrap(); println!("{}", contents); } #[test] fn test_read_file() { let path = &Path::new("/etc/hosts"); println!("{:?}", path); read_file(path); } 我这样运行unit testing: rustc –test app.rs; ./app 我也可以运行这个 cargo test 我收到一条消息,说testing通过了,但是println! 从不显示在屏幕上。 为什么不?
我有简单的build.gradle (或任何有println任务的build.gradle ) println GradleVersion.current().prettyPrint() task task1{ println 'task1 starting' } 现在当我运行$ gradle build我总是看到任务执行或打印输出 task1 starting :compileJava UP-TO-DATE :processResources UP-TO-DATE :classes UP-TO-DATE :jar :assemble :compileTestJava UP-TO-DATE :processTestResources UP-TO-DATE :testClasses UP-TO-DATE :test UP-TO-DATE :check UP-TO-DATE :build BUILD SUCCESSFUL Total time: 1.291 secs 为什么总是从println里面输出任务?
这是一个基本的问题,但我找不到答案。 我研究过浮点算术和其他几个主题,但似乎没有解决这个问题。 我确定我只是有错误的术语。 基本上,我想采取两个数量 – 完成和总计 – 并将它们分成一个百分比(已完成多less)。 数量很long 。 这是设置: long completed = 25000; long total = 50000; System.out.println(completed/total); // Prints 0 我尝试重新分配结果到一个双 – 打印0.0 。 我哪里错了? 顺便说一句,下一步是把这个结果乘以100,这个小跨度跨越后,我认为应该很容易。 顺便说一句,这里没有作业,只是普通的老式的数字(也许今天编码太多)。