scala 从入门到入门+

新手向,面向刚从java过渡到scala的同学,目的是写出已已易于维护和阅读的代码. 从语句到表达式 语句(statement): 一段可执行的代码 表达式(expression): 一段可以被求值的代码 在Java中语句和表达式是有区分的,表达式必须在return或者等号右侧,而在scala中,一切都是表达式. 一个例子: 假设我们在公司的内网和外网要从不同的域名访问一样的机器 //Java代码 String urlString = null; String hostName = InetAddress.getLocalHost().getHostName(); if (isInnerHost(hostName)) { urlString = "http://inner.host"; } else { urlString = "http://outter.host"; } 刚转到scala的人很可能这么写 var urlString: String = null var hostName = InetAddress.getLocalHost.getHostName if (isInnerHost(hostName)) { urlString = "http://inner.host" } else { urlString = "http://outter.host" } 我们让它更像scala一点吧 val hostName = InetAddress.getLocalHost.getHostName val urlString = if (isInnerHost(hostName)) { "http://inner.host" } else { "http://outter.host" } 这样做的好处都有啥?