返回值

java之语句块、方法与递归

雨燕双飞 提交于 2019-12-05 02:39:25
1 语句块 语句块(有时叫做复合语句),是用花括号扩起的任意数量的简单java语句。 块确定了局部变量的作用域。块中的程序代码,作为一个整体,是要被一起执行的 。块可以嵌套在另一个块中,但是不能在两个嵌套的块内声明同名的变量。语句块可以使用外部的变量,而外部不能使用语句块中定义的变量,因为语句块内的变量作用域仅限于语句块。 2 方法 方法就是一段用来 完成特定功能的代码片段 (相当于特殊的语句块),类似于其他语言的函数。我们可以反复的调用。 方法用来定义该类或该类的实例的行为特征和功能实现。方法是类和对象行为特征的抽象。方法很类似于面向过程中的函数。面向过程中,函数是最基本单位,整个程序由一个个函数调用组成。面向对象中,整个程序的基本单位是类,方法是从属于类和对象的。 方法声明格式: [修饰符1 修饰符2 ...] 返回值类型 方法名(形式参数列表){         java语句:... } 方法的调用方式: 对象名.方法名(实参列表) 方法的详细说明: 1. 形式参数:在方法声明时用于接收外界传入的数据。 2.实参:调用方法时实际传给方法的数据。 3.返回值:方法在执行完毕后返还给调用它的环境的数据 4.返回值类型:事先约定的返回值的数据类型,如无返回值,必须指定为void。 1.目前阶段所有方法的修饰符列表统一写成:public static 2

一起学Java(十二)

[亡魂溺海] 提交于 2019-12-05 02:38:44
不积跬步,无以至千里;不积小流,无以成江海。 Java语言基础 Java方法详述(重载与重写) 重载的概念: 在同一个类中,允许存在一个以上的的同名方法,只要它们的参数个数或者参数类型不同即可。 重载的特点: 与返回值类型无关,只看参数列表,且参数列表必须不同(访问修饰符和返回值类型可以相同也可以不同)。 示例: public class Test { public void test(){ System.out.println("test1"); } public void test(int a){ System.out.println("test2"); } //以下两个参数类型顺序不同 public void test(int a,String s){ System.out.println("test3"); } public void test(String s,int a){ System.out.println("test4"); } public static void main(String[] args){ Test o = new Test(); o.test(); o.test(1); o.test(1,"test3"); o.test("test4",1); } } 运行结果:   test1 test2 test3 test4 重写的概念:

Java中如何更优雅的处理空值

眉间皱痕 提交于 2019-12-05 02:30:54
本文来源:https://lrwinx.github.io/ 经常看到项目中存在到处空值判断的情况,这些判断,会让人觉得摸不着头绪,它的出现很有可能和当前的业务逻辑并没有关系。但它会让你很头疼。有时候,更可怕的是系统因为这些空值的情况,会抛出空指针异常,导致业务系统发生问题。 此篇文章总结了几种关于空值的处理手法 业务中的空值 场景 存在一个UserSearchService用来提供用户查询的功能: public interface UserSearchService{ List<User> listUser(); User get(Integer id); } 问题现场 对于面向对象语言来讲,抽象层级特别的重要。尤其是对接口的抽象,它在设计和开发中占很大的比重,我们在开发时希望尽量面向接口编程。 对于以上描述的接口方法来看,大概可以推断出可能它包含了以下两个含义: listUser(): 查询用户列表 get(Integer id): 查询单个用户 在所有的开发中,XP推崇的TDD模式可以很好的引导我们对接口的定义,所以我们将TDD作为开发代码的”推动者”。 对于以上的接口,当我们使用TDD进行测试用例先行时,发现了潜在的问题: listUser() 如果没有数据,那它是返回空集合还是null呢? get(Integer id) 如果没有这个对象,是抛异常还是返回null呢?

Go-内置time包

此生再无相见时 提交于 2019-12-05 01:49:55
一.导入包 import "time" 二.转换成Time对象 获取当前时间:time. Now () 自定义时间:time. Date(year int, month Month, day, hour, min, sec, nsec int, loc *Location) 三.Time对象的方法 年月日周 Date() : 返回时间的日期信息 返回值int类型 Year() : 返回年 返回值int类型 Month () : 返回月 返回值Month类型 Day () : 返回日 返回值int类型 YearDay() : 一年中对应的天 返回值int类型 年,星期范围编号 ISOWeek () : 返回年,星期范围编号 int类型 时分秒 Clock () : 返回 时分秒 返回值int类型 Hour () : 返回时 返回值int类型 Minute () : 返回分 返回值int类型 Second () : 返回秒 返回值int类型 Nanosecond () : 返回纳秒 返回值int类型 时间戳 Unix() :时间戳 返回值 int64 UnixNano() :时间戳(纳秒) 返回值 int64 时区 Location ():时区 返回值 *Location Zone() :时区偏差 返回值string+int 四.时间序列化和返序列化以及比较与计算 参考 https:/

Go的reflect机制和reflect包

时光怂恿深爱的人放手 提交于 2019-12-05 00:52:31
Go 的 reflect 机制和 reflect 包 概述 虽然 Go 是静态语言,然而还是提供了 reflect 机制,并且定义了 reflect 包来辅助反射处理。在 reflect 包中,最重要的两个类型就是 Type和Value,分别从类型、值的角度来描述一个 Go 对象。 Type 类型是一个接口,这个接口实现了 String() string 方法。 Value 类型是一个结构,但是并未定义任何导出字段,同样定义了 String() string 方法。 使用如下语句来导入 reflect 包 import "reflect" 注意 : 1.本文中出现在类型章节的函数,都是 Type 的方法。由于接口的特殊性,无法明确其 receiver 是指针还是值,所以并未显示其 receiver ,但都是有 receiver 的 2.很多方法都有要求,如果要求不满足,那么 panic 3.Value 类型也有零值,零值只能调用 IsValid()/String()/Kind() 方法,其余方法都会 panic 下面我们将依次介绍不同类型的对象和它对应的 Type/Value 对象 Go 的 reflect 机制和 reflect 包 1 类型 3 值 4 算术类型的 Go 对象 : 6 Go 的 reflect 机制和 reflect 包 1 类型 3 Kind 类型 4 值 4

Flask基础之返回值三剑客与form表单提交

岁酱吖の 提交于 2019-12-05 00:25:14
一、Python 现阶段三大主流Web框架 Django Tornado Flask 对比   1.Django 主要特点是大而全,集成了很多组件,例如: Models Admin Form 等等, 不管你用得到用不到,反正它全都有,属于全能型框架 Django 通常用于大型Web应用由于内置组件足够强大所以使用Django开发可以一气呵成 Django 优点是大而全,缺点也就暴露出来了,这么多的资源一次性全部加载,肯定会造成一部分的资源浪费   2.Tornado 主要特点是原生异步非阻塞,在IO密集型应用和多任务处理上占据绝对性的优势,属于专注型框架 Tornado 通常用于API后端应用,游戏服务后台,其内部实现的异步非阻塞真是稳得一批 Tornado 优点是异步,缺点是干净,连个Session都不支持   3.Flask 主要特点小而轻,原生组件几乎为0, 三方提供的组件请参考Django 非常全面,属于短小精悍型框架 Flask 通常应用于小型应用和快速构建应用,其强大的三方库,足以支撑一个大型的Web应用 二、Flask的安装 pip install Flask 三、Flask的第一个简单应用   实现一个简单的web程序: 1 from flask import Flask #导入Flask类 2 3 # __name__指定当前文件名flask1.py 4 app

Rust 入门 (三)_下

牧云@^-^@ 提交于 2019-12-04 23:11:25
这部分我们学习 rust 语言的 变量、数据类型、函数、注释、流程控制 这五个方面的内容。前文介绍了前两个内容,本文介绍后三个内容。 函数 函数在 rust 代码普遍存在,我们也已经见过了它的主函数 main 函数了,它是进入程序的入口。我们也见过了 fn 关键字了,它是用来声明函数的。 <br> 特别说明一下:rust 语言的函数和变量都是以小写字母和下划线命名的,如果以其它方式命名,你会收到一个警告。 函数说明 函数是以 fn 关键字打头,然后是函数名字和小括号,最后的大括号是用来告诉编译器函数体的开始和结束。我们也可以通过函数名字和小括号来调用我们定义的函数,定义的函数可以在主函数前面,也可以在主函数后面。rust 不关心定义的位置,只要你在某个地方定义了它。我们来看个简单的例子吧: fn main() { println!("Hello, world!"); another_function(); } fn another_function() { println!("另一个函数"); } 运行结果: cargo run Compiling hello_cargo v0.1.0 (/Users/shanpengfei/work/rust-work-space/study/hello_cargo) Finished dev [unoptimized + debuginfo]

Rust 入门 (三)_下

醉酒当歌 提交于 2019-12-04 22:39:34
这部分我们学习 rust 语言的 变量、数据类型、函数、注释、流程控制 这五个方面的内容。前文介绍了前两个内容,本文介绍后三个内容。 函数 函数在 rust 代码普遍存在,我们也已经见过了它的主函数 main 函数了,它是进入程序的入口。我们也见过了 fn 关键字了,它是用来声明函数的。 <br> 特别说明一下:rust 语言的函数和变量都是以小写字母和下划线命名的,如果以其它方式命名,你会收到一个警告。 函数说明 函数是以 fn 关键字打头,然后是函数名字和小括号,最后的大括号是用来告诉编译器函数体的开始和结束。我们也可以通过函数名字和小括号来调用我们定义的函数,定义的函数可以在主函数前面,也可以在主函数后面。rust 不关心定义的位置,只要你在某个地方定义了它。我们来看个简单的例子吧: fn main() { println!("Hello, world!"); another_function(); } fn another_function() { println!("另一个函数"); } 运行结果: cargo run Compiling hello_cargo v0.1.0 (/Users/shanpengfei/work/rust-work-space/study/hello_cargo) Finished dev [unoptimized + debuginfo]

函数的返回值与作用域

三世轮回 提交于 2019-12-04 22:05:20
函数外部的代码要想获取函数的执行结果,就可以在函数里用return语句把结果返回 1 def stu_register(name, age, course='PY' ,country='CN'): 2 print("----注册学生信息------") 3 print("姓名:", name) 4 print("age:", age) 5 print("国籍:", country) 6 print("课程:", course) 7 if age > 22: 8 return False 9 else: 10 return True 11 registriation_status = stu_register("王山炮",22,course="PY全栈开发",country='JP') 12 if registriation_status: 13 print("注册成功") 14 else: 15 print("too old to be a student.") 注意 函数在执行过程中只要遇到return语句,就会停止执行并返回结果,so 也可以理解为 return 语句代表着函数的结束 如果未在函数中指定return,那这个函数的返回值为None 全局变量与局部变量 1 name = "Alex Li" #这个就是全局变量,在程序内部是一直能够调用的 2 def change

Python学习之路6 - 装饰器

六眼飞鱼酱① 提交于 2019-12-04 21:43:43
定义 :本质是函数,(装饰其他函数)就是为其他函数添加附加功能。 原则 :1.不能修改被装饰的函数的源代码    2.不能修改被装饰的函数的调用方式 实现装饰器的知识储备:   1. 函数即“变量”   2. 高阶函数(满足下列条件之一就是高阶函数) a:把一个函数名当作形参传给另一个函数(在不修改被装饰函数源代码的情况下修改其功能,但是调用方式变了) b:返回值中包含函数名(不修改函数的调用方式,而修改函数功能)   3. 嵌套函数 总结: 高阶函数+嵌套函数=>装饰器 1. 函数即变量 def bar(): #这里定义个函数 print('this is bar...') func = bar #将函数当变量一样赋值给func func() #这是func加上()就可以当函数用了   这就是函数即变量。 2. 高阶函数 a: 把一个函数名当做形参传给另一函数(在不修改被装饰函数源代码的情况下修改其他功能,但是调用方式变了) def bar(): print('this is bar...') bar() print('----------------------------------') def test(func): #在这里增加了功能 print(func) test(bar) #但是这里修改了调用方式 b: 返回值中包含函数名(不修改函数的调用方式,而修改函数功能)