将元素添加到scala.collection.mutable.Map的语法是什么?
以下是一些失败的尝试:
val map = scala.collection.mutable.Map
map("mykey") = "myval"
map += "mykey" -> "myval"
map.put("mykey","myval")
Run Code Online (Sandbox Code Playgroud) 我有一个自定义类型,内部有一片数据.
是否可以通过实现范围运算符所需的某些函数或接口来迭代(使用范围)我的自定义类型?
我想将Joda Time UTC DateTime对象转换为本地时间.
这是一种艰苦的方法,它似乎有效.但必须有更好的方法.
这是没有周围声明的代码(在Scala中):
val dtUTC = new DateTime("2010-10-28T04:00")
println("dtUTC = " + dtUTC)
val dtLocal = timestampLocal(dtUTC)
println("local = " + dtLocal)
def timestampLocal(dtUTC: DateTime): String = {
// This is a laborious way to convert from UTC to local. There must be a better way.
val instantUTC = dtUTC.getMillis
val localDateTimeZone = DateTimeZone.getDefault
val instantLocal = localDateTimeZone.convertUTCToLocal(instantUTC)
val dtLocal = new DateTime(instantLocal)
dtLocal.toString
}
Run Code Online (Sandbox Code Playgroud)
这是输出:
dtUTC = 2010-10-28T04:00:00.000 + 11:00 local = 2010-10-28T15:00:00.000 + 11:00
我希望字符串按字母顺序排序,并控制“A”是否在“a”之前。
在使用 strings.ToLower() 的 Less() 函数中无法实现这一点。有时“A”在“a”之前,有时在之后。
我想要一个ArrayBuffer的二维数组
像这样的东西:
var myRowOfStrings = new ArrayBuffer[String]
val myArrayOfRows = new ArrayBuffer[ArrayBuffer] // To store many ArrayBuffer[String]
Run Code Online (Sandbox Code Playgroud)
但是Scala编译器不喜欢第二个声明:
scala> val myArrayOfRows = new ArrayBuffer[ArrayBuffer]
<console>:8: error: class ArrayBuffer takes type parameters
val myArrayOfRows = new ArrayBuffer[ArrayBuffer]
^
Run Code Online (Sandbox Code Playgroud)
我的语法错了吗?
或者是ArrayBuffer的ArrayBuffer不可能?
运行此代码以查看我的意思:Go Playground演示问题
package main
import (
"fmt"
"strconv"
)
func main() {
// From https://golang.org/src/math/const.go
var SmallestNonzeroFloat64AsString string = "4.940656458412465441765687928682213723651e-324"
var SmallestNonzeroFloat64 float64
var err error
SmallestNonzeroFloat64, err = strconv.ParseFloat(SmallestNonzeroFloat64AsString, 64)
if err != nil {
panic(err)
}
fmt.Printf("SmallestNonzeroFloat64 = %g\n", SmallestNonzeroFloat64)
fmt.Printf("SmallestNonzeroFloat64 = %s\n", strconv.FormatFloat(SmallestNonzeroFloat64, 'f', -1, 64))
}
Run Code Online (Sandbox Code Playgroud)
SmallestNonzeroFloat64在math/const.go中定义,我假设它可以用float64变量表示.
但是当它被解析成一个带有strconv.ParseFloat()和打印的float64时,strconv.FormatFloat()结果是四舍五入的.
而不是4.940656458412465441765687928682213723651e-324我得到5e-324(或它的非指数等价,你可以在Go Playground结果中看到).结果四舍五入.
有办法回来4.940656458412465441765687928682213723651e-324吗?
或者这是一个错误?