更优雅的scala代码

SS.*_*SS. 3 scala

我开始学习斯卡拉.不知道是否有人有更好的方法以更实用的方式重写代码.我知道必须有一个.

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)