Scala
geekingLi
now or never
展开
-
【scala】打印输出金字塔和乘法口诀表
打印金字塔 import scala.io.StdIn object PrintPyramid { def main(args: Array[String]): Unit = { println("请输入一个数:") val n= StdIn.readInt() f1(n) } // 法1,简洁 def f1(n: Int) = { //这样的函数,问题是*星号之间没有空格 for (i <- 1 to n){ println(" "原创 2020-10-15 00:26:59 · 1684 阅读 · 1 评论 -
【scala】递归函数调用原理详解
分享今天看到的一句话,与大家共勉。 先看做了什么,再看能做什么,最后才考虑想做什么。 今天在复盘scala调用递归函数,下面用一段代码来分析一下: 问题引入:猴子吃桃子问题 有一堆桃子,猴子第一天吃了其中的一半,并再多吃了一个!以后每天猴子都吃其中的一半,然后 再多吃一个。当到第十天时,想再吃时(还没吃),发现只有 1 个桃子了。问题:最初共多少个桃 子? 代码实现(以第7天为例) object recursive_fun { def main(args: Array[..原创 2020-10-13 23:06:38 · 326 阅读 · 0 评论 -
【Scala】方法和函数
【Scala函数的定义】 5.4.1基本语法 def 函数名 ([参数名: 参数类型], ...)[[: 返回值类型] =] { 语句... return 返回值 } 1) 函数声明关键字为 def (definition) 2) [参数名: 参数类型], ...:表示函数的输入(就是参数列表), 可以没有。 如果有,多个参数使用逗 号间隔 3) 函数中的语句:表示为了实现某一功能代码块 4) 函数可以有返回值,也可以没有 返回值形式 1: : 返回值类型 = 返回值形式 2: = 表示返回值类型不确定.原创 2020-10-12 23:18:18 · 95 阅读 · 0 评论 -
【Scala】for循环控制步长的方式
object stepfor { def main(args: Array[String]): Unit = { for (i <- 1 to 10) { println("i=" + i) } //控制步长控制为 2 //法1:利用Range函数。 for (i <- Range(1, 10, 2)) { println("i=" + i) } .原创 2020-10-12 20:57:09 · 3273 阅读 · 0 评论 -
【Scala】基础语法
1. println(s"名字是"+${name}+\t"年龄是"+${age+10}) 这边s是代表后面有变量需要解析,不能去掉 用$符引用变量,加了花括号之后,还可以进行计算 2. printf("名字是%s 年龄是%d 身高是%f", name, age, height) 可以用%s, %d, %f等进行占位 3. 在idea中,格式化代码的快捷键是 Ctrl+Alt+L 4. Scala关联源码:将源码包放在scala的lib目录下,向下解压两次,再关联即可。 5. 在Sc.原创 2020-10-11 22:13:51 · 152 阅读 · 0 评论 -
【Scala】为什么编译后生成两个class文件?scala$.class和scala.class的区别
看下面一段Scala入门的代码: object HelloScala{ def main(args:Array[String]):Unit = { println("hello, scala~~") } } 编译后生成如下class文件: 结合这两张截图作一些说明: 1.object表示一个伴生类对象 2.HelloScala就是对象的名字,它底层真正对应的类名是HelloScala$,对象是HelloScala$类型的一个静态对象MODULE$ 3....原创 2020-09-27 22:46:18 · 1275 阅读 · 0 评论