现在网站建站的主流语言是什么免费seo网站优化工具

web/2026/1/17 13:37:11/文章来源:
现在网站建站的主流语言是什么,免费seo网站优化工具,网站建设模板制作,青岛城阳新闻最新消息Scala 函数(Function) 概述 将一段逻辑进行封装便于进行重复使用#xff0c;被封装的这段逻辑就是函数。在Scala中#xff0c;必须通过def来定义函数 基本语法 def 函数名(参数列表) : 返回值类型 {函数体return 返回值 }案例 // 案例#xff1a;定义函数计算两个整数的…Scala 函数(Function) 概述 将一段逻辑进行封装便于进行重复使用被封装的这段逻辑就是函数。在Scala中必须通过def来定义函数 基本语法 def 函数名(参数列表) : 返回值类型 {函数体return 返回值 }案例 // 案例定义函数计算两个整数的和 // 标准写法 def sum(a: Int, b: Int): Int {return a b } // 因为在Scala中所有的结构都必须有返回值 // 所以在函数中如果不指定默认会将最后一行的计算结果作为返回值 // 也因此可以省略return不写 def sum(a: Int, b: Int): Int {a b } // 如果函数体只有一句话那么此时也可以省略{}不写 def sum(a: Int, b: Int): Int a b // 参数类型非常明确并且可以由计算结果来确定返回值类型 // 那么也就意味着此时可以推导出结果类型因此可以省略返回值类型不写 def sum(a: Int, b: Int) a b练习定义一个函数判断一个数字是否是质数 package com.fesco.methodobject MethodExer1 {def main(args: Array[String]): Unit {println(isPrime(19))println(isPrime(25))}// 判断数字是否是质数/*定义函数明确问题1. 是否需要参数 - 是否有未知量来参与运算需要在调用函数的时候传入这个数据2. 明确结果类型 - 判断是不是的问题那么结果类型应该是布尔值3. 明确计算逻辑*/def isPrime(n: Int): Boolean {// 判断传入的参数n是否是一个质数// 1及以下的数字不是质数if (n 1) falseelse if (n 2) trueelse {for (i - 2 until n) {if (n % i 0) return false}// 如果整个循环结束都没有返回false那么说明所有数字都无法整除true}}}案例 // 打印n行*组成的三角形 def printStar(n: Int): Unit {for (i - 1 to n)println(* * i) } // 可以推导出结果类型 def printStar(n: Int) {for (i - 1 to n)println(* * i) } // 如果返回值类型是Unit那么此时可以省略不写 def printStar(n: Int) {for (i - 1 to n)println(* * i) } // 如果代码只有一行并且返回值类型还是Unit那么此时或者{}只能省略其一 def printStar(n: Int) for (i - 1 to n) println(* * i)案例 package com.fesco.methodobject MethodDemo3 {def main(args: Array[String]): Unit {// 如果函数在调用的时候没有参数()可以写可以不写println(rand100())println(rand100)// 如果函数在定义的时候就没有()那么调用的时候也不能写()println(rand)}// 产生1-100之间的随机数def rand100():Int (Math.random() * 100 1).toInt// 函数没有参数的因此()可以省略def rand:Int (Math.random() * 100 1).toInt}参数 可变参数 所谓可变参数指的是在调用函数的时候参数个数可以变化 案例 package com.fesco.methodobject MethodDemo4 {def main(args: Array[String]): Unit {println(sum(4.2, 1.84, 8.741, 7.2, 2.05))}// 计算传入的数字的和// 通过*来定义可变参数def sum(nums: Double*): Double {var sum 0.0for (n - nums)sum n// 将结果返回sum}}注意函数中最多只能定义一个可变参数并且必须放在参数列表的末尾 默认参数 默认参数在定义函数的时候就给参数一个默认值。在调用函数的时候如果指定了值就使用指定的来计算如果没有指定就使用默认值来计算 案例 package com.fesco.methodobject MethodDemo5 {def main(args: Array[String]): Unit {// 在调用函数的时候如果没有传入折扣那么就使用默认值println(offPrice(180))// 如果传入了折扣那么就按照传入的折扣来计算println(offPrice(150, 0.88))}// 案例计算打折之后的价格// 如果需要打折那么就指定折扣// 如果不需要打折希望off就是1def offPrice(price: Double, off: Double 1.0): Double {if (off 0 || off 1) throw new IllegalArgumentExceptionprice * off} }函数的调用 Scala中也是通过函数名(参数)的形式来调用函数但是Scala提供了省略调用和带名调用 省略调用如果函数没有参数那么在调用函数的时候可以省略()不写 println() // 省略调用 println如果函数定义的时候有()那么在调用的时候可以写()也可以不写()如果函数定义的时候就没有()那么调用的时候就不能有() 带名调用在调用函数的时候指定参数名来赋值 package com.fesco.methodobject MethodDemo6 {def main(args: Array[String]): Unit {info(bob, 男, 19)info(name bob, gender 男, age 19)// 带名调用的时候参数顺序可以不一致info(gender 男, age 19, name bob)message(name David, age 15)println(offPrice(180, off 0.92))}def info(name: String, gender: String, age: Int) println(s姓名$name\n性别$gender\n年龄$age)// 默认参数def message(name: String, gender: String 男, age: Int) println(s姓名$name\n性别$gender\n年龄$age)def offPrice(price: Double, vip: Int 0, off: Double 1) {if (vip 0) price * offelse if (vip 3) price * 0.95 * offelse if (vip 7) price * 0.9 * offelse price * 0.85 * off}}函数和方法 Java中函数就是方法方法也是函数。在Scala中函数的范围会比方法要稍微大一点 Scala中函数可以定义在任何位置即函数可以定义在类或者函数内 object MethodDemo7 {def main(args: Array[String]): Unit {// 在函数中定义函数def sum(x: Int, y: Int) x yprintln(sum(3, 5))}}如果需要细分定义在类中的函数称之为方法定义在其他地方的就是函数 在Scala中函数是一等公民即函数可以定义在任何地方也可以被当作参数进行传递当作结果进行返回当作变量被赋值 函数赋值给变量/常量 package com.fesco.functionobject FunctionDemo1 {def main(args: Array[String]): Unit {// 函数作为一等公民可以被定义在任何位置def rand(): Int (Math.random() * 100).toInt// 调用函数打印结果println(rand())// 将函数的计算结果赋值给变量/常量val r rand()println(r)val r2 randprintln(r2)// 不是调用rand函数而是把rand函数作为数据传递给f// 所以此时可以认为f既是一个常量也是一个函数// 常量f的数据类型是() Intval f: () Int rand _println(f)// 调用函数fprintln(f())def sum(x: Int, y: Int): Int x y// 将sum函数作为一个整体数据赋值给常量s// 此时可以认为s既是一个常量也是一个函数// s的数据是一个函数// sum的参数类型是(Int, Int)返回值是Int// 所以s的数据类型(Int, Int) Intval s: (Int, Int) Int sum _// 打印常量s的数据println(s)// 调用s中的函数println(s(3, 5))// 匿名函数val a1: (Int, Int) Int (x: Int, y: Int) x yprintln(a1)println(a1(2, 4))// 定义常量a2的时候已经指定了要封装的参数的类型在定义函数的时候就可以省略参数类型val a2: (Int, Int) Int (x, y) x yprintln(a2)println(a2(2, 4))}}高阶函数 当一个函数的参数是另一个函数或者返回值是另一个函数的时候这个函数就是高阶函数 将函数作为参数进行传递 package com.fesco.functionobject FunctionDemo2 {def main(args: Array[String]): Unit {// 需求定义一个函数对两个整数进行计算返回一个整数/*1. 明确参数a. 两个整数是未知的所以需要以参数形式来体现b. 对这俩整数来进行计算计算规则是未知的所以同样需要将计算规则以参数形式来体现2. 计算逻辑要利用传入的规则对两个参数来进行计算*/def calcInt(x: Int, y: Int, f: (Int, Int) Int): Int f(x, y)// 定义计算规则def times(x: Int, y: Int): Int x * y// 调用calcInt函数传入参数和规则println(calcInt(3, 6, times))// 新规则def subtract(x: Int, y: Int): Int x - y// 传入规则println(calcInt(3, 6, subtract))// 可以直接传入规则println(calcInt(3, 6, (x: Int, y: Int) {x - y}))// 当函数体只有一句的时候{}可以省略println(calcInt(3, 6, (x: Int, y: Int) x - y))// 定义calcInt函数的时候就已经指定了规则f中的参数类型和结果类型所以参数类型可以省略println(calcInt(3, 6, (x, y) x - y))// 在匿名函数中依次调用了参数并且只调用一次那么可以省略参数列表不写用_来依次代替每一个参数println(calcInt(3, 6, _ - _))println(calcInt(3, 6, _ * _))}}将函数作为结果进行返回 package com.fesco.functionobject FunctionDemo3 {def main(args: Array[String]): Unit {// 定义一个函数可以依次传入两个整数求和// 可以先传入一个整数然后再传入另一个整数// 如果只有一个参数可以省略()不写// def sum(x: Int): (Int) Int {// def sum(x: Int): Int Int {// 如果在定义函数的时候没有写返回值类型而是由编译器自动推导那么返回函数的时候必须添加_/*def sum(x: Int) {def add(y: Int): Int x yadd _}*/// 如果在定义函数的时候指定了返回值类型那么返回函数的时候可以不用添加_def sum(x: Int): Int Int {def add(y: Int): Int x yadd}val r sum(5)// r接收到是add函数println(r)// 再传入第二参数val n r(8)println(n)// 可以第一个参数不变改变第二个参数println(r(6))// 传入两个参数val n2 sum(3)(6)println(n2)}}闭包(closure) 闭包指的是一个函数如果访问了外部变量的值那么此时这个函数以及它所处的函数构成了闭包 闭包的特点会延长外部函数中变量的生命周期 package com.fesco.functionobject ClosureDemo {def main(args: Array[String]): Unit {// 函数rand中接收了一个变量n// 正常情况下而言当rand函数执行结束之后rand函数所占用的内存应该立即释放// 因此变量n应该也立即销毁 - 此时变量n的生命周期随着函数rand的结束而结束def rand(n: Int): Int (Math.random() * n).toIntprintln(rand(10))println(rand(50))def random(n: Int) {def r() (Math.random() * n).toIntr _}// 当执行完这句话之后random函数就应该执行完了// random函数执行完成之后如果变量n随着random函数一起被销毁// 那么会导致产生嵌套的r函数无法执行所以此时n不会被销毁而是被保留// 此时n的生命周期不再随着random函数结束而结束// n的生命周期被延长这个过程就称之为闭包val result random(5)println(result())}}

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

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

相关文章

商业网站的后缀一般为在线爬取网页源码

P2495 [SDOI2011]消耗战 题目描述 详见:P2495 [SDOI2011]消耗战 Solution 此题是虚树的经典版子题吧qwq。 是不是直接贴代码就行了啊(反正不是luogu题解,没有人查)。 大概就是先建出虚树(一般给定一堆关键点的题…

校园网站建设方向做网站的任务书

AI人工智能在建筑智能化工程设计的应用 相关政策: 建筑智能化工程设计资质是为了合理设计各种智能化系统,让它们有机地结合成为有效的整体作用。在工程设计标准中,智能化资质设计全称为建筑智能化系统专项设计资质。企业一旦具备智能化设计资…

各种网站程序的优势揭阳网站建站网站

文章目录 一、线程的概念1. 什么是线程Linux下并不存在真正的多线程,而是用进程模拟的!Linux没有真正意义上的线程相关的系统调用!原生线程库pthread 2. 线程和进程的联系和区别3. 线程的优点4. 线程的缺点5. 线程异常6. 线程用途 二、二级页…

天河建设网站方案深圳龙岩技术科技有限公司

这是关于一个普通双非本科大一学生的C的学习记录贴 在此前,我学了一点点C语言还有简单的数据结构,如果有小伙伴想和我一起学习的,可以私信我交流分享学习资料 那么开启正题 今天分享的是关于二叉树的题目 1.从前序与中序遍历序列构造二叉…

顺德网站建设公司咨询云南省住房和建设厅网站

【BASH】回顾与知识点梳理 二十 二十. 十六至十九章知识点总结及练习20.1 总结20.2 练习 该系列目录 --> 【BASH】回顾与知识点梳理(目录) 二十. 十六至十九章知识点总结及练习 20.1 总结 shell script 是利用 shell 的功能所写的一个『程序 (prog…

网站备案最多需要多久建设网站会员登陆

以3040端口为例 要查看在Linux系统中哪个程序占用了3040端口,可以使用lsof命令或netstat命令结合适当的参数。这里提供两种常用的方法: 方法1:使用 lsof 命令 lsof(List Open Files)是一个查看当前系统打开文件的工…

网站备案查询姓名怎么样开发小程序

文章目录 Sentinel雪崩问题服务保护框架Sentinel配置 限流规则快速入门流控模式流控效果热点参数限流 隔离和降级FeignClient整合Sentinel线程隔离(舱壁模式)熔断降级 授权规则及规则持久化授权规则自定义异常结果持久化 Sentinel 雪崩问题 服务保护框架…

3.建设营销型网站流程wordpress meta 插件

1. 两个栈实现队列 实现一 思路 s1是入栈的,s2是出栈的。 入队列,直接压到s1是就行了出队列,先把s1中的元素全部出栈压入到s2中,弹出s2中的栈顶元素;再把s2的所有元素全部压回s1中 实现二 思路 s1是入栈的&#xff0c…

做追星网站效果图会泽住房和城乡建设局网站

文章目录 前言一、下载并安装Tesseract OCR二、配置环境变量三、Python中安装使用pytesseract总结 前言 Tesseract OCR是一个开源OCR(Optical Character Recognition)引擎,用于从图像中提取文本。Pytesseract是Tesseract OCR的Python封装&am…

公司网站建设推广方案模板网站没更新

参考 Lawrence Systems 的 Youtube,频道有教程。 安装 安装 Collabora,只需要修改 账户,密码,及证书。 新增 dataset,名称 “NextCloud_Database”,其他默认新增 dataset,名称 “NextCloud_Data”&#…

山西智能建站系统价格网站开发 实习报告

计算机网络总复习链接🔗 目录 组帧差错控制检错编码纠错编码 流量控制与可靠传输机制流量控制、可靠传输与滑动窗口机制单帧窗口与停止-等待协议多帧滑动窗口与后退N帧协议(GBN)多帧滑动窗口与选择重传协议 介质访问控制信道划分介质访问控制…

域名网站搭建软件交易网

Jersey2为Jackson和JAXB提供内置支持。 但是默认情况下不支持Jibx。 要将Jibx与Jersey2结合使用,我们将XML输入作为流,并在接收到请求之后,使用Jibx对其进行解析。 但是实际上,有更好的方法可以使用MessageBodyReader和MessageBod…

南京快速建站公司网站设计步骤及图解

1. ETag HTTP 1.1中引入了ETag来解决缓存的问题。ETag全称是Entity Tag,由服务端生成,服务端可以决定它的生成规则。如果根据文件内容生成散列值。那么条件请求将不会受到时间戳的改动造成带宽浪费。下面是根据内容生成散列值的方法: 1 var g…

小企业官方网站制作网页版聊天工具有哪些

「拥抱开源, 又见 .NET」随着 .NET Core的发布和开源,.NET又重新回到人们的视野。 .NET Core的下个3.0即将release,加入非常多的新功能,越来越拥抱变化,DevOps和Microservice的最佳实践已经在 .NET Core落地,比如 Ocel…

做手机网站公司微信开放平台和微信公众号的区别

Windows是一个不断发展的系统,很多新的 API 在操作系统更新时更新,而MASM32开发包一般在很长一段时间内都无法及时更新,如果需要在编程中使用新添加的API函数。就得自己动手来更手库文件,下面我就给大家介绍一下如何通过手动的方法…

网站控制用dw做网站的视频

《C语言第五六次作业.ppt》由会员分享,可在线阅读,更多相关《C语言第五六次作业.ppt(40页珍藏版)》请在人人文库网上搜索。1、C语言作业解析,第四弹,。原来真正变态的是这两作业哇 原本是做完第五次作业等大家数分期中考完以后给大家,结果直接…

优斗网站建设手机百度app最新版下载

文章目录 前言实验手册一、实验目的二、实验原理1.理论原理2.硬件原理 三、系统架构设计四、模块说明1.模块端口信号列表按键消抖模块(key)计数器模块(counter)蜂鸣器乐谱模块(music)蜂鸣器发声…

网站建设方法冫金手指排名26中英文自助网站建设

再谈协议HTTP协议认识URLurlencode和urldecodeHTTP协议格式HTTP的方法HTTP的状态码HTTP常见HeaderHTTP周边会话保持 再谈协议 协议是一种 “约定”. socket api的接口,在读写数据时,都是按 “字符串” 的方式来发送接收的(tcp是以字节流的方式发送的&am…

郑州网站服务公司做 了一个 家教 网站

零基础入门NLP - 新闻文本分类,正式赛第一名方案分享:https://mp.weixin.qq.com/s/7WpZUqdlItBToLYuRLm44g

空间手机版网站目录建设进wordpress根目录

从零实现的浏览器Web脚本 在之前我们介绍了从零实现Chrome扩展,而实际上浏览器级别的扩展整体架构非常复杂,尽管当前有统一规范但不同浏览器的具体实现不尽相同,并且成为开发者并上架Chrome应用商店需要支付5$的注册费,如果我们只…