类和对象
1 类定义:
class ChecksumAccumulator {
// class definition goes here
}
你就能创建 ChecksumAccumulator 对象:
new CheckSumAccumulator
注:1scala类中成员默认是public类型,若设为私有属性则必须加private关键字。在scala中是public属性的地方可以省略public关键字。
2 Scala里方法参数的一个重要特征是他们都是val,不是var,
eg:
def add(b: Byte): Unit = {
b += 1 // 编译不过,因为 b 是 val
sum += b
}
3 def默认返回时Unit,若爸“Unit=”去掉,则def默认返回的值会转换成Unit,若要指定返回类型,这需要将Unit指定为要转换的类型:
Unit 是函数f 声明的结果类型。 Scala 编译器会把一个以过程风格定义的方法,就是说,带有大括号但没有等号的,在本质上当作是显式定义结果类型为Unit 的方法。例如:
scala> def g() { "this String gets lost too" }
g: () Unit
因此,如果你本想返回一个非Unit 的值,却忘记了等号时,那么困惑就出现了。所以为了得到你想要的结果,你需要插入等号:
scala> def h() = { "this String gets returned!" }
h: () java.lang.String
scala> h
res0: java.lang.String = this String gets returned!
2 Singleton对象
Scala比java更为面向对象的特点之一是Scala不能了定义静态成员,而是代之定义单例对象。
单例对象:Object 代替class关键字:
当单例对象与某个类共享同一个名称时,他被称作是这个类的伴生对象:companion object。你必须在同一个源文件里定义类和它的伴生对象。类被称为是这个单例对象的伴生类:companion class。类和它的伴生对象可以互相访问其私有成员。
类和单例对象间的一个差别是,单例对象不带参数,而类可以。因为你不能用new关键字实例化一个单例对象,你没机会传递给它参数。每个单例对象都被作为由一个静态变量指向的虚构类:synthetic class的一个实例来实现,因此它们与Java静态类有着相同的初始化语法。
不与伴生类共享名称的单例对象被称为独立对象
3 Scala 程序
特别要指出的是,单例对象会在第一次被访问的时候初始化。不与伴生类共享名称的单例对象被称为孤立对象: standalone object。
要执行 Scala 程序,你一定要提供一个有main 方法(仅带一个参数,Array[String] ,且结果类型为Unit)的孤立单例对象名。任何拥有合适签名的 main 方法的单例对象都可以用来作为程序的入口点。代码:
编译scala源程序:
scalac xxx.scala
这将编译你的源文件,不过在编译完成之前或许会有一个可感知的停顿。原因是每次编译器启动时,都要花一些时间扫描jar 文件内容,并在即使你提交的是新的源文件也在查之前完成其他初始化工作。因此,Scala 的发布包里还包括了一个叫做fsc(快速Scala编译器)的Scala 编译器后台服务:daemon。你可以这样使用:
fsc xxx.scala 快速编译
相关文章:

类和对象
1 类定义: class ChecksumAccumulator {// class definition goes here } 你就能创建 ChecksumAccumulator 对象:new CheckSumAccumulator 注:1scala类中成员默认是public类型,若设为私有属性则必须加private关键字。在scala中是…...

Py之tensorflow-addons:tensorflow-addons的简介、安装、使用方法之详细攻略
Py之tensorflow-addons:tensorflow-addons的简介、安装、使用方法之详细攻略 目录 tensorflow-addons的简介 tensorflow-addons的安装 tensorflow-addons的使用方法 1、使用 TensorFlow Addons 中的功能: tensorflow-addons的简介 TensorFlow Addon…...

STM32G4x FLASH 读写配置结构体(LL库下使用)
主要工作就是把HAL的超时用LL库延时替代,保留了中断擦写模式、轮询等待擦写,我已经验证了部分。 笔者用的芯片为STM32G473CBT6 128KB Flash,开环环境为CUBEMXMDK5.32,因为G4已经没有标准库了,笔者还是习惯使用标准库的…...

【AI提示词人物篇】创新艺术未来,让科技改变想象空间
AI 绘画学习难度和练习技巧 学习绘画的技巧 学习能难度: 外貌特征:AI需要学习识别和理解各种外貌特征,如发型、肤色、眼睛颜色等。这可能需要大量的训练数据和复杂的模型架构。 镜头提示:AI需要学习理解不同镜头提示的含义&…...
登录shell与非登录shell、交互式与非交互式shell的知识点详细总结
一、登录shell与非登录shell 1.登录shell定义:指的是当用户登录系统时所取的那个shell,登录shell属于交互式shell。 登陆shell通常指的是:用户通过输入用户名/密码(或证书认证)后启动的shell.例如: 当时…...

【教学类-42-02】20231224 X-Y 之间加法题判断题2.0(按2:8比例抽取正确题和错误题)
作品展示: 0-5: 21题,正确21题,错误21题42题 。小于44格子,都写上,哪怕输入2:8,实际也是5:5 0-10 66题,正确66题,错误66题132题 大于44格子,正确66题抽取44*…...

轻量Http客户端工具VSCode和IDEA
文章目录 前言Visual Studio Code 的插件 REST Client编写第一个案例进阶,设置变量进阶,设置Token IntelliJ IDEA 的 HTTP请求构建http脚本HTTP的环境配置结果值暂存 前言 作为一个WEB工程师,在日常的使用过程中,HTTP请求是必不可…...

机器学习或深度学习的数据读取工作(大数据处理)
机器学习或深度学习的数据读取工作(大数据处理)主要是.split和re.findall和glob.glob运用。 读取文件的路径(为了获得文件内容)和提取文件路径中感兴趣的东西(标签) 1,“glob.glob”用于读取文件路径 2,“.…...
Rust 生命周期
Rust 第17节 生命周期 先看一段错误代码 /* //一段错误的代码 // Rust 编译时会报错; */let r;{let x 5;r &x;}println!("{}",r);Rust 在编译时使用 借用检查器, 比较作用域来检查所有的借用是否合法; 很明显;r…...

【论文解读】CNN-Based Fast HEVC Quantization Parameter Mode Decision
时间:2019 年 级别:SCI 机构:南京信息工程大学 摘要 随着多媒体呈现技术、图像采集技术和互联网行业的发展,远程通信的方式已经从以前的书信、音频转变为现在的音频/视频。和 视频在工作、学习和娱乐中的比例不断提高࿰…...
在Linux上安装CLion
本教程将指导你如何在Linux系统上安装CLion,下载地址为:https://download.jetbrains.com.cn/cpp/CLion-2022.3.3.tar.gz。以下是详细的安装步骤: 步骤1:下载CLion 首先,你需要使用wget命令从提供的URL下载CLion的tar…...
R语言贝叶斯网络模型、INLA下的贝叶斯回归、R语言现代贝叶斯统计学方法、R语言混合效应(多水平/层次/嵌套)模型
目录 ㈠ 基于R语言的贝叶斯网络模型的实践技术应用 ㈡ R语言贝叶斯方法在生态环境领域中的高阶技术应用 ㈢ 基于R语言贝叶斯进阶:INLA下的贝叶斯回归、生存分析、随机游走、广义可加模型、极端数据的贝叶斯分析 ㈣ 基于R语言的现代贝叶斯统计学方法(贝叶斯参数估…...

多维时序 | Matlab实现PSO-GCNN粒子群优化分组卷积神经网络多变量时间序列预测
多维时序 | Matlab实现PSO-GCNN粒子群优化分组卷积神经网络多变量时间序列预测 目录 多维时序 | Matlab实现PSO-GCNN粒子群优化分组卷积神经网络多变量时间序列预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 Matlab实现PSO-GCNN粒子群优化分组卷积神经网络多…...

Oracle 学习(1)
Oracle简介 Oracle是殷墟(yīn Xu)出土的甲骨文(oracle bone inscriptions)的英文翻译的第一个单词,在英语里是“神谕”的意思。Oracle公司成立于1977年,总部位于美国加州,是世界领先的信息管…...

华为HCIA认证H12-811题库新增
801、[单选题]178/832、在系统视图下键入什么命令可以切换到用户视图? A quit B souter C system-view D user-view 试题答案:A 试题解析:在系统视图下键入quit命令退出到用户视图。因此答案选A。 802、[单选题]“网络管理员在三层交换机上创建了V…...
Nginx Unit 1.27.0 发布
目录 介绍 更新内容 将 HTTP 请求重定向到 HTTPS 为纯路径 URI 提供可配置的文件名 完整的更新日志 其他 平台更新 介绍 Nginx Unit 是一个动态应用服务器,能够与 Nginx Plus 和 Nginx 开源版并行或独立运行。Nginx Unit 支持 RESTful JSON API,…...
【影像组学入门百问】#32—#34
#32-影像组学研究过程中,图像重采样参 数怎么选择? 在影像组学研究过程中,选择合适的图像重采样参数对于保证分析质量和准确性至关重要。以下是在选择图像重采样参数时需要考虑的一些建议: 1.目标分辨率:首先&#…...
YOLOv5代码解析——yolo.py
yolo.py的主要功能是构建模型。 1、最主要的函数是parse_model,用于解析yaml文件,并根据解析的结果搭建网络。这个函数的注释如下: def parse_model(d, ch): # model_dict, input_channels(3)"""解析模型文件,并…...
4种feature classification在代码的实现上是怎么样的?Linear / MLP / CNN / Attention-Based Heads
具体的分类效果可以看:【Arxiv 2023】Diffusion Models Beat GANs on Image Classification 1、线性分类器 (Linear, A) 使用一个简单的线性层,通常与一个激活函数结合使用。 import torch.nn as nnclass LinearClassifier(nn.Module):def __init__(se…...
最新Unity DOTS Physics物理引擎碰撞事件处理
最近DOTS发布了正式的版本,同时基于DOTS的理念实现了一套高性能的物理引擎,今天我们给大家分享和介绍一下这个物理引擎的碰撞事件处理以及核心相关概念。 Unity.Physics物理引擎的主要流程与Pipeline Unity.Physics物理引擎做仿真迭代计算的时候主要通过以下步骤来…...

【WiFi帧结构】
文章目录 帧结构MAC头部管理帧 帧结构 Wi-Fi的帧分为三部分组成:MAC头部frame bodyFCS,其中MAC是固定格式的,frame body是可变长度。 MAC头部有frame control,duration,address1,address2,addre…...

8k长序列建模,蛋白质语言模型Prot42仅利用目标蛋白序列即可生成高亲和力结合剂
蛋白质结合剂(如抗体、抑制肽)在疾病诊断、成像分析及靶向药物递送等关键场景中发挥着不可替代的作用。传统上,高特异性蛋白质结合剂的开发高度依赖噬菌体展示、定向进化等实验技术,但这类方法普遍面临资源消耗巨大、研发周期冗长…...

UE5 学习系列(三)创建和移动物体
这篇博客是该系列的第三篇,是在之前两篇博客的基础上展开,主要介绍如何在操作界面中创建和拖动物体,这篇博客跟随的视频链接如下: B 站视频:s03-创建和移动物体 如果你不打算开之前的博客并且对UE5 比较熟的话按照以…...

JUC笔记(上)-复习 涉及死锁 volatile synchronized CAS 原子操作
一、上下文切换 即使单核CPU也可以进行多线程执行代码,CPU会给每个线程分配CPU时间片来实现这个机制。时间片非常短,所以CPU会不断地切换线程执行,从而让我们感觉多个线程是同时执行的。时间片一般是十几毫秒(ms)。通过时间片分配算法执行。…...

使用 SymPy 进行向量和矩阵的高级操作
在科学计算和工程领域,向量和矩阵操作是解决问题的核心技能之一。Python 的 SymPy 库提供了强大的符号计算功能,能够高效地处理向量和矩阵的各种操作。本文将深入探讨如何使用 SymPy 进行向量和矩阵的创建、合并以及维度拓展等操作,并通过具体…...

【VLNs篇】07:NavRL—在动态环境中学习安全飞行
项目内容论文标题NavRL: 在动态环境中学习安全飞行 (NavRL: Learning Safe Flight in Dynamic Environments)核心问题解决无人机在包含静态和动态障碍物的复杂环境中进行安全、高效自主导航的挑战,克服传统方法和现有强化学习方法的局限性。核心算法基于近端策略优化…...

无人机侦测与反制技术的进展与应用
国家电网无人机侦测与反制技术的进展与应用 引言 随着无人机(无人驾驶飞行器,UAV)技术的快速发展,其在商业、娱乐和军事领域的广泛应用带来了新的安全挑战。特别是对于关键基础设施如电力系统,无人机的“黑飞”&…...

GitFlow 工作模式(详解)
今天再学项目的过程中遇到使用gitflow模式管理代码,因此进行学习并且发布关于gitflow的一些思考 Git与GitFlow模式 我们在写代码的时候通常会进行网上保存,无论是github还是gittee,都是一种基于git去保存代码的形式,这样保存代码…...

vulnyx Blogger writeup
信息收集 arp-scan nmap 获取userFlag 上web看看 一个默认的页面,gobuster扫一下目录 可以看到扫出的目录中得到了一个有价值的目录/wordpress,说明目标所使用的cms是wordpress,访问http://192.168.43.213/wordpress/然后查看源码能看到 这…...

uniapp手机号一键登录保姆级教程(包含前端和后端)
目录 前置条件创建uniapp项目并关联uniClound云空间开启一键登录模块并开通一键登录服务编写云函数并上传部署获取手机号流程(第一种) 前端直接调用云函数获取手机号(第三种)后台调用云函数获取手机号 错误码常见问题 前置条件 手机安装有sim卡手机开启…...