欢迎关注Hadoop、Spark、Flink、Hive、Hbase、Flume等大数据资料分享微信公共账号:iteblog_hadoop
  1. 文章总数:975
  2. 浏览总数:11,897,642
  3. 评论:3925
  4. 分类目录:105 个
  5. 注册用户数:6079
  6. 最后更新:2018年12月9日
过往记忆博客公众号iteblog_hadoop
欢迎关注微信公众号:
iteblog_hadoop
大数据技术博客公众号bigdata_ai
大数据猿:
bigdata_ai

在脚本中使用Scala的高级特性

  继续介绍如何在脚本中运行Scala,在前面的文章中我们只是简单地介绍了如何在脚本中使用Scala,本文将进一步地介绍。

  在脚本中使用Scala最大的好处就是可以在脚本中使用Scala的所有高级特性,比如我们可以在脚本中定义和使用Scala class,如下:

#!/bin/sh
exec scala -savecompiled "$0" "$@"
!#

case class Iteblog(var site: String) {
        override def toString = site
}
println(Iteblog("http://www.ioteblog.com"))

运行这个脚本可以输出http://www.ioteblog.com

我们也可以在脚本中使用main函数:

#!/bin/sh
exec scala -savecompiled "$0" "$@"
!#

object HelloIteblog {
        def main(args: Array[String]) {
                println("Hello" + args.mkString(","))
        }
}

HelloIteblog.main(args)

  定义main函数和正常的写法一样,只不过我们需要使用HelloIteblog.main(args)的形式调用这个main函数。

  很多时候,我们编写程序的时候往往是需要依赖外部的类。因为在脚本里面可以使用所有Scala的特性,所以我们也可以在脚本中指定需要依赖的jar包,使用方法如下:

#!/bin/sh
exec scala -classpath "lib/iteblog.jar" "$0" "$@"
!#

然后我们可以在脚本里面导入依赖:

#!/bin/sh
exec scala -classpath "lib/iteblog.jar" "$0" "$@"
!#

import com.iteblog._
object Iteblog{
	def main(args: Array[String]) {
		val json = "{\"gparam\":{\"initStep\":\"AUTH\",\"userStatus\":\"WHITEUSER\"},\"ajaxdata\":{\"url\":\"/m/ious/activation/submitAuthAndActivateSMSApi.do\",\"method\":\"post\",\"errorCode\":\"200\",\"errorMsg\":null}}"
		IteblogJson.parser(json)
	}
}

Iteblog.main(args)

我们可以看出,这些使用和编写正常的Scala脚本很类似。

本博客文章除特别声明,全部都是原创!
转载本文请加上:转载自过往记忆(https://www.iteblog.com/)
本文链接: 【在脚本中使用Scala的高级特性】(https://www.iteblog.com/archives/1547.html)
喜欢 (5)
分享 (0)
发表我的评论
取消评论

表情
本博客评论系统带有自动识别垃圾评论功能,请写一些有意义的评论,谢谢!