我开始学习斯卡拉.不知道是否有人有更好的方法以更实用的方式重写代码.我知道必须有一个.
val buf = ((addr>>24)&0xff) + "." + ((addr>>16)&0xff) + "." + ((addr>>8)&0xff) + "." + ((addr)&0xff)
Run Code Online (Sandbox Code Playgroud)
Bri*_*ian 11
这会生成Range(24, 16, 8, 0)with (24 to 0 by -8),然后使用函数将函数addr >> _ & 0xff应用于每个数字map.最后,Range数字的映射与"连接" .以创建字符串.
映射比使用+运算符更有用,但其余的只是语法糖和库调用mkString.
val addr = 1024
val buf = (24 to 0 by -8).map(addr >> _ & 0xff).mkString(".")
buf: java.lang.String = 0.0.4.0
Run Code Online (Sandbox Code Playgroud)