Scala:idea中的main函数引发函数定义的思考

1.声明

当前内容主要用于本人学习和复习,当前内容主要为思考main函数产生的函数创建思考

2.思考idea方式自动创建main函数

def main(args: Array[String]): Unit = {
}

def定义函数,args是String类型的数组?:Unit=表示返回值类型为无返回值

得到结果:Array[String]就是String类型的数组,Unit表示无返回值,但是前面的没有: Unit=

def main(args: Array[String]){
}

这个也是可以的,这说明如果当前的def定义的函数无返回值,那么可以省略:Unit=的内容

如果创建一个函数没有参数列表的话…是否可以将参数列表也省略

3.开始创建各种函数

package com.hy.scala.start
/**
 * @description 当前内容主要用于本人学习和测试当前的数组的使用
 * @author hy
 * @date 2020-06-24
 */
object FunctionTest {
  def print(num: Int): String = {
    return num + "123";
  }
  def print(): String = {
    return "123";
  }

  def print2(): Int = {
    return 1;
  }

  def print3: Array[Int] = {
    return Array(1, 2, 3, 4);
    return new Array[Int](0);
    return new Array(0);
  }

  def print4 {
    return "123"; // 该返回值被优化掉了,只有一个警告
    println("无参数,无返回值类型的函数..."); //这个也被优化掉了
  }

  def print5() {
    // return "123"; // 该返回值被优化掉了
    println("无参数,无返回值类型的函数...");
  }

  def main(args: Array[String]): Unit = {
    println(print3);
    println(print2);
    println(print);
    println(print(1));
    println(print4); //显示结果为()
    // 报错println(print4()); //显示结果为()
    println(print5); //显示结果为()
    println(print5()); //显示结果为()
  }
}

通过测试发现如果println一个无参无返回值的函数那么直接返回(),这个()就是Unit,可以通过new Array[T](值1,值2)创建任意类型的数组,所以该Array相当于当前Java中ArrayList

当前的def中可以具有return,即使没有返回值(估计被编译器优化了),而且return后面可以有任何逻辑代码(也被优化掉了)

发现函数的无参数的函数没有()的调用时不能使用函数名()方式调用(直接报错),使用有参时候可以使用函数名(需要的值列表)

4.总结

1.如果在当前的函数中看到:类型=,就表示当前函数的返回值类型

2.小心,函数中没有()时,不能使用函数名()调用,而函数中具有时,可以使用函数名和函数名()调用

3.scala中函数可以重载

以上纯属个人见解,如有问题请联系本人!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值