scala中条件返回的正确习惯用法

 我是老头168 发布于 2023-02-12 17:36

我试图找出scala方式来实现我将在java中一直做的事情.在java中我会让snarf_image(下面)在满足if条件时返回null,否则返回bArray.scala的方法是什么?这段代码甚至没有编译,我无法找到正确的方法 - 我确信我的想法是关闭的.

 def snarf_image ( sUrl : String ) : Array[Byte] = {
   val bis = new BufferedInputStream(new URL(sUrl.replace(" ", "%20")).openStream())
   val bArray = Stream.continually(bis.read).takeWhile(-1 !=).map(_.toByte).toArray
   val img = ImageProcessing.ArrayToImage(bArray)
   if ( img.getHeight < 100 || img.getWidth < 100 ) {
     Empty
   } else {
     bArray
   }
 }

为了记录我使用电梯(因此使用空)但我很确定这更像是斯卡拉问题.

1 个回答
  • 有时可以Option用于要返回null的情况(在Java中).

    我没有编译它,但它应该工作.

    def snarf_image ( sUrl : String ) : Option[Array[Byte]] = {
       val bis = new BufferedInputStream(new URL(sUrl.replace(" ", "%20")).openStream())
       val bArray = Stream.continually(bis.read).takeWhile(-1 !=).map(_.toByte).toArray
       val img = ImageProcessing.ArrayToImage(bArray)
       if ( img.getHeight < 100 || img.getWidth < 100 ) {
         None
       } else {
         Some(bArray)
       }
    }
    

    2023-02-12 17:38 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有