Scala语言入门以及基本语法

news2025/4/15 16:28:23

文章目录

  • 前言
  • 1.环境搭建
    • 1) IDEA中插件下载
    • 2) SDK下载配置
  • 2.基本使用
    • 1)var与val的区别
    • 2) .基本数据类型
    • 3).字符串的基本用法
    • 4) 控制结构
      • 1) if else
      • 2) for 循环
      • 3) while循环
    • 5)类
    • 6) 函数

前言

scala在一种简洁的高级语言中结合了面向对象和函数式编程。Scala的静态类型有助于避免复杂应用程序中的错误,它的JVM和JavaScript运行时使您可以构建高性能系统,并轻松访问庞大的库生态系统。

几大特性

  • Scala运行在JVM上,因此Java和Scala实现完全无缝集成。
  • 类型推理。
  • 并发与分布式。
  • 将java风格接口的灵活性与类的强大功能结合起来。
  • 模式匹配
  • 高阶函数
  • 非常适合初学者和高级软件开发。

1.环境搭建

环境搭建很简单,现在都是在IDEA中集成插件,添加SDK即可快速开发。

1) IDEA中插件下载

file-->settings-->plugins,搜索scala下载安装即可,安装好需要重启IDEA选择位置
插件下载

2) SDK下载配置

file–>ProjectStructure–>global libraries–>点击添加–选择Scala SDK
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
download
下载完成之后即可。new Class
Scala class

就可以打印hello world了。

object TestScala {
  def main(args: Array[String]): Unit = {
    println("hello scala")
  }
}
// hello scala

2.基本使用

1)var与val的区别

val和var的区别在于val使变量不可变——就像Java中的final——而var使变量可变.
重复赋值出现错误

2) .基本数据类型

val b: Byte = 1
val x: Int = 1
val l: Long = 1
val s: Short = 1
val d: Double = 2.0
val f: Float = 3.0
val c:Char='A'
var str:String="ACSDFS"

3).字符串的基本用法

object TestString {
  def main(args: Array[String]): Unit = {
    val str1="hello"
    var str2="world"
    //拼接字符串
     //第一种拼接
    println(str1+" "+str2)
    println("--------第二种拼接--------")
    println(s"$str1 $str2")
  }
}

4) 控制结构

1) if else

def main(args: Array[String]): Unit = {
    val a=3
    if (a < 0 ) {
     println(s"$a < 0")
    } else if ( a == 0) {
      println(s"$a = 0")
    } else {
      println(s"$a > 0")
    }
  }

2) for 循环

  val nums = Seq(1,2,3)
  println("------for循环-----------")
  for (n <- nums) println(n)
  println("------foreach-----------")
  nums.foreach(println)

3) while循环

def main(args: Array[String]): Unit = {
   var a = 0
   while(a < 10){
      println(a)
      //a++ 没有java中的这种写法
      a+=1
   }
}

5)类

// the primary constructor
    class Pizza (var crustSize: Int, var crustType: String) {

      //一个参数构造
      def this(crustSize: Int) = {
        this(crustSize, DefaultCrustType)
      }
      // 一个参数构造器
      def this(crustType: String) = {
        this(DefaultCrustSize, crustType)
      }

      // 无参构造器
      def this() = {
        this(DefaultCrustSize, DefaultCrustType)
      }
      def printPizzaInfo(): Unit ={
        println(s"pizza $DefaultCrustSize $DefaultCrustType")
      }
    }

6) 函数

def main(args: Array[String]): Unit = {
   println("-----无参函数----")
   printMsg()
  println("-----参数函数----")
  println(add(1,2))
   println("-----参数函数----")
   println(sum(1,2,3))
  def printMsg(): Unit ={
    println("function print")
  }
   def add(a:Int,b:Int): Int ={
     return a+b
   }
  //可变参数
  def sum(args: Int*) = {
    var result = 0
    for(arg <- args) result += arg
    result
  }
}
}

其他的语法下篇讲解。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/468935.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

8个免费的PNG素材网站推荐

很多设计小白都不知道什么是PNG。事实上&#xff0c;PNG是一种支持透明度的图像格式。当你想在设计中将图像与背景或文本混合时&#xff0c;它就会派上用场。 如果你没有时间为你正在处理的设计创建透明的PNG图像&#xff0c;你也可以使用我收集的PNG素材网站&#xff0c;以便…

【Linux从入门到精通】Linux常用基础指令(中)

本篇文章接上篇文章&#xff08;【Linux从入门到精通】Linux常用基础指令&#xff08;上&#xff09;&#xff09;进行详解。本章的指令相对较为重要&#xff0c;使用频率较高&#xff0c;难度相对上篇文章较难&#xff0c;也较为复杂。希望能对你的理解有所帮助。 文章目录 一…

(Open AI 极简教程)ChatGPT注册登录常见问题及其解决方法最全总结

好久没有更新过技术类的文章了&#xff0c;临近五一假期&#xff0c;首先祝大家假期游玩愉快&#xff0c;也希望本篇文章能够对你有所帮助&#xff0c;今天这篇博客将会把ChatGPT注册中可能遇到的问题彻头彻尾的讲一下&#xff0c;如果感觉有帮助的话就动动你发财的小手点个收藏…

蓝奥声核心技术分享——一种无线低功耗配置技术

1.技术背景 无线低功耗配置技术指基于对目标场景状态变化的协同感知而获得触发响应并进行智能决策&#xff0c;属于蓝奥声核心技术--边缘协同感知(EICS&#xff09;技术的关键支撑性技术之一。该项技术涉及物联网边缘域的无线通信技术领域&#xff0c;具体主要涉及网络服务节点…

3.龙芯2k1000 builroot文件系统编译过程

3.龙芯2k1000 builroot文件系统编译过程 文章目录 3.龙芯2k1000 builroot文件系统编译过程&#xff08;一&#xff09;、在Ubuntu环境下载并配置交叉编译链&#xff08;与内核编译工具链相同&#xff09;&#xff08;二&#xff09;、下载buildroot源码&#xff08;三&#xff…

【Linux命令篇】正则表达式浅析

前言 转义字符是将普通字符转化为特殊字符的一种方式。 在正则表达式中&#xff0c;一些字符被定义为特殊字符&#xff08;也称为元字符&#xff09;&#xff0c;它们具有特殊的含义。这些特殊字符包括&#xff1a; 句点字符 .&#xff1a;可以匹配除了换行符以外的任何单个…

JavaScript经典教程(四)-- JavaScript基础 - BOM、打印、window对象等详解

184&#xff1a;JavaScript基础 - BOM、打印、window对象等详解 185&#xff1a;JavaScript基础 - 数据类型Number及运算符号 1、关键字 &#xff08;3&#xff09;alert - 警告窗 原型&#xff1a;window.alert(); alert实际上是一个函数 注&#xff1a;alert无法弹出部分…

Figma如何导出jpg格式?

在这个追求效率和质量的时代&#xff0c;Figma确实可以加快我们的设计工作&#xff0c;增加效率&#xff0c;功能越来越强大。然而&#xff0c;Figma从未有过中文版本。 但就使用工具而言&#xff0c;一次生两次并不难。设计小白经常卡在最后一步&#xff0c;如何用Figma导出j…

【Paper】2022_基于自适应事件触发控制的一般线性多智能体系统的一致性_田昌源

田昌源. 基于自适应事件触发控制的一般线性多智能体系统的一致性[D].青岛大学,2022.DOI:10.27262/d.cnki.gqdau.2022.002546. 文章目录 第五章 一般线性多智能体系统的自适应事件触发二分一致性5.1 系统模型5.2 自适应事件触发二分一致性5.2.1 无领导一致性5.2.2 领导-跟随一致…

JDK的环境配置(超级详细教程)

JDK的环境配置——超详细教程 一、下载java安装包 我们可以去官网下载java&#xff0c;进入官网页面&#xff0c;然后点击Download Java。 网站&#xff1a;https://developer.oracle.com/languages/java.html 里面有各种版本的jdk可供选择。 二、安装JDK 这里我选择安装…

Android实现一个带清除和提交按钮的清爽圆角搜索框

运行效果&#xff1a; 放入Toolbar的效果 清除按钮有内容才显示&#xff1a; 下面是教程&#xff1a; 实现一个圆角搜索框&#xff0c;可以使用CardView来实现&#xff0c;同时可以添加一个EditText和两个ImageView作为清除和提交按钮。 activity_main <?xml version&quo…

Anaconda3 安装 Tensorflow-gpu

一.准备需要 GPU版本&#xff0c;需要提前下载 cuda 和 cuDNN。&#xff08;可以查看此教程 Anaconda3 安装 Tensorflow-gpu &#xff09; GPU 一般是 nvidia 的 安装前 一定 要查看自己电脑的环境配置&#xff0c;然后查询Tensorflow-gpu、Python、 cuda 、 cuDNN 版本关系&…

嵌入式设备显示屏相关概念汇总

嵌入式设备常用的显示屏接口 LCD 接口&#xff1a;是一种常见的数字电路接口&#xff0c;支持多种显示器件&#xff0c;如字符型液晶显示器和点阵型液晶显示器等。 VGA 接口&#xff1a;是一种视频接口标准&#xff0c;用于连接显示器和计算机。该接口提供模拟 RGB 信号&#…

以太网卡TSO、GSO、LRO、GRO描述及相关配置

以太网卡TSO、GSO、LRO、GRO描述及相关配置 以太网卡的 TSO、GSO、LRO、GRO 是一些传输协议中用于提高网络性能的技术。 硬件包拆分与合并 TSO&#xff08;TCP Segmentation Offload &#xff09; TSO 是一种由网卡卸载 TCP 数据包分段的技术。在传统的方式中&#xff0c;当…

案例01-tlias智能学习辅助系统04-登录认证+全局异常处理

目录 1、基础登录 2、登录校验 2.1、会话跟踪技术&#xff1a; Cookie、Session JWT令牌 2.2、请求过滤 方式一、过滤器&#xff08;Filter&#xff09; 方法二&#xff1a;拦截器&#xff08;interceptor&#xff09; Filter与Interceptor的区别 3、全局异常处理器 1、…

fork函数如何创建进程,exit/_exit函数如何使进程终止的详细分析与代码实现

&#x1f38a;【进程通信与并发】专题正在持续更新中&#xff0c;进程&#xff0c;线程&#xff0c;IPC&#xff0c;线程池等的创建原理与运用✨&#xff0c;欢迎大家前往订阅本专题&#xff0c;获取更多详细信息哦&#x1f38f;&#x1f38f;&#x1f38f; &#x1fa94;本系列…

【Pytorch基础教程38】torchserve模型部署和推理

note torch-model-archiver打包模型&#xff1b;利用torchserve加载前面打包的模型&#xff0c;并以grpc和http等接口往外提供推理服务启动模型的api服务、curl命令发送http post请求&#xff0c;请求模型服务API&#xff1b;流程和TensorFlow serving流程大同小异 文章目录 n…

人工智能之配置环境教程二:在Anaconda中创建虚拟环境并在VsCode中使用

人工智能之配置环境教程二&#xff1a;在Anaconda中创建虚拟环境安装pytorch并在VsCode中使用虚拟环境 作者介绍一. 在Anaconda中创建虚拟环境1. 进入本地终端1.1 键盘使用**winR**快捷键1.2 输入**cmd**点击**确定**进入windows命令行终端 2. 安装镜像源2.1 添加镜像源 3. 创建…

PowerShell install 一键部署http+用户名密码登录实现文件系统

Apache 前言 Apache(音译为阿帕奇)是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上&#xff0c;由于其跨平台和安全性被广泛使用&#xff0c;是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩充&#xff0c;将Perl/Python等…