fun函数

Kotlin开发springboot项目(二)

╄→尐↘猪︶ㄣ 提交于 2019-12-28 04:21:01
Kotlin开发springboot项目(二) 中文学习网站: https://www.kotlincn.net/ 研究一下kotlin的demo: https://github.com/JetBrains/kotlin-examples Kotlin 文件以 .kt 为后缀。 包声明 kotlin源文件不需要相匹配的目录和包,源文件可以放在任何文件目录。 如果没有指定包,默认为 default 包。 package basic.kotlin.manager.beijing /** * 定义类 */ class 总经理(var 姓: String) { override fun toString(): String { return "${姓}经理" } } package basic.kotlin.manager.beijing import basic.kotlin.manager.beijing.总经理 as 茶水大王 // 起一个别名 /** * 包必须声明在非注释的第一行 */ fun main(args: Array<String>) { val manager: 茶水大王 = 茶水大王("张") println(manager) } 默认导入 有多个包会默认导入到每个 Kotlin 文件中: kotlin.* kotlin.annotation.* kotlin

Kotlin基础篇(一)

佐手、 提交于 2019-12-28 04:20:04
写在前面:     因为工作需要,目前转安卓开发,用的IDE是AS3.2版本,语言的话,用的是Kotlin。由于之前是做.NET的,没接触过这方面的东西,所以完全是小白一枚。所以想着开个博客,以此来记录自己的学习进度。光是环境搭建,自己琢磨了一上午,也上网百度,最后在一以前搞安卓开发的同事的帮助下,才完成环境的搭建。    --------------------------------------------我是分割线---------------------------------------------------------- Kotlin 基础语法 0、常量与变量 常量:用 val 关键字,只能赋值一次的变量 val 标识符:类型 = 初始化值 例如: val b:Int = 1 变量:用 var 关键字 例如:var a:Int = 1 变量与常量都可以没有初始化值,如果声明的时候不初始化,则必须声明变量类型,但是在引用前必须初始化。 val c:Int c = 1 声明的时候也可以不声明类型,编译器支持自动类型判断。 val d = 1 //系统自动判断变量类型为Int 1、 函数定义 函数定义使用关键字 fun ,参数格式为:参数 : 类型 例如: fun sum(a:Int,b:Int):Int{return a+b} 上面的例子里定义的 sum 函数是有返回值的

编写 fun 函数求两个数之差的绝对值,将差值返回主调函数,编写完整程序实现函 数调用;

廉价感情. 提交于 2019-12-24 16:16:27
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> #include<stdio.h> int fun(int a,int b); int main() { int a,b,y; printf("输入a的值:\n"); scanf("%d",&a); printf("输入b的值:\n"); scanf("%d",&b); y=fun(a,b); printf("输出y=%d:",y); return 0; } int fun(int a,int b)//绝对值 { int y; if(a-b>=0){ y=a-b; }else{ y=b-a; } return y; } 来源: oschina 链接: https://my.oschina.net/u/4227963/blog/3146693

关于纯虚函数

自古美人都是妖i 提交于 2019-12-24 14:05:57
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> #include "stdafx.h" #include<iostream>    using namespace std; //1.一个类中可以声明一个或多个纯虚函数,只要有纯虚函数的类就是抽象类 //2.抽象类只能作为其他类的基类,不能用来建立对象,又称抽象基类 //3.如果派生类只是简单地继承了抽象类的纯虚函数,而没有重新定义基类的纯虚函数,则派生类也是一个抽象类 class A{ public: virtual void fun() = 0; //纯虚函数 }; class B:public A{ public: void fun(){cout<<"实现纯虚函数的定义成功"<<endl;} //重写基类纯虚函数 }; //只有派生类与基类的虚函数具有完全相同的函数名、返回类型以及参数表,才能实现虚函数的特性 class C:public A{ public: void fun(int i){cout << "fun(int i)并不是基类纯虚函数fun()的实现版本"<<endl;} }; //PS:以下两种声名没有区别 int *i,j = NULL; int* p,q = NULL; int _tmain(int argc, _TCHAR* argv[]) { cout << i << endl;

2019年8月9日星期五(系统编程)

泄露秘密 提交于 2019-12-24 12:05:28
2019 年 8 月 9 日星期五 一 . linux 多进程编程 - 通信方式。 1. 为什么进程之间要进行数据通信? 例子: ./test -> 开启一个名字为 test的进程。 ./project -> 开启一个名字为 project的进程。 通过学习通信方式,使得不同进程之间进行数据交换,例如 test进程发送数据给 project进程,从而控制 project进程运行状态。 2. 在 linux 下,通信方式有哪些?各自有什么特点? 以下几种方式属于系统编程的通信方式,只能同一台主机内部进程通信,不能跨主机。 1 )管道通信 管道通信分为有名管道与无名管道通信,管道也是 linux的一种特殊文件,进程可以写入数据到管道中,从而实现通信。 2 )信号 在 linux下,有非常多信号,例如暂停,继续,停止 ...,某一个进程通过发送信号给另外一个进程,从进行通信。 3 )消息队列 消息队列可以读取另外一个进程发送来的数据,而且可以读取特定的数据。 4 )共享内存 多个进程同时访问同一片内存空间。 能够跨主机通信的,只有网络编程才能实现 。 1 )套接字编程 可以实现不同的主机之间的通信。 二 . 进程之间通信 - 无名管道 1. 什么是无名管道?作用机制如何? 无名管道只能作用于亲缘关系的进程,例如父子进程。无名管道其实是数组来的,里面有读端与写端,进程只需要将数据写入

python定义有默认参数的函数

泄露秘密 提交于 2019-12-23 03:05:04
定义一个函数或者方法,它的一个或多个参数是可选的并且有一个默认值。 def fun(a, b=42): print(a, b) fun(1) # Ok. a=1, b=42 fun(1, 2) # Ok. a=1, b=2 如果默认参数是一个可修改的容器比如一个列表、集合或者字典,可以使用None作为默认值,就像下面这样: # Using a list as a default value def fun(a, b=None): if b is None: b = [] ... 注意到当我们改变x的值的时候对默认参数值并没有影响,这是因为在函数定义的时候就已经确定了它的默认值了。 其次,默认参数的值应该是不可变的对象,比如None、True、False、数字或字符串。 特别的,千万不要像下面这样写代码: def fun(a, b=[]): # NO! ... 如果你这么做了,当默认值在其他地方被修改后你将会遇到各种麻烦。这些修改会影响到下次调用这个函数时的默认值。比如: ... print(b) ... return b ... >>> x = fun(1) >>> x [] >>> x.append(99) >>> x.append('Yow!') >>> x [99, 'Yow!'] >>> fun(1) # Modified list gets returned! [99,

指针和引用的区别

怎甘沉沦 提交于 2019-12-22 12:56:56
一、 C++中引用和指针的区别 指针初始化的时候,可以指向一个地址,也可以为空。 引用必须初始化为另一个变量. int ival = 1024; int *pi = &ival; // a pointer int &rval = ival; // a reference 二、 估计很多人在编写C++程序都或多或少的会用到pointer 和 reference这两种东西,但是他们两者到底有什么样的区别和联系呢,相信大多数人是不太了解的,今天我就两者的区别和联系从实际程序的角度来加以区别。 C/C++中的指针其实就是一个变量,和其他类型的变量是一个样子的,它是一个占用四字节的变量(32位机上),它与其他变量的不同之处就在于它的变量值是一个内存地址,指向内存的另外一个地方。reference我的理解就是一个别名,它和linux操作系统上的alias是一个样子的。再者,一个pointer变量可以指向NULL,表示它不指向任何变量地址,但是reference必须在声明的时候就得和一个已经存在的变量相绑定,而且这种绑定不可改变。下面是我写的一段程序来验证pointer与reference的区别和联系的,希望能对大家理解pointer & reference的区别和联系有所帮助: #include "stdafx.h" #include <iostream> using namespace

22_装饰器、带参数的装饰器、多个装饰器装饰一个函数

冷暖自知 提交于 2019-12-20 03:35:08
一、装饰器的执行流程 1 def wrapper(func): 2 def inner(*args,**kwargs): 3 ret = func(*args,**kwargs) 4 return ret 5 return inner 6 7 @wrapper #fun = wrapper(fun) 8 def fun(s): 9 print('666') 10 return s 11 12 fun('777') 13 print(fun('777')) 14 15 ''' 16 1.程序至上而下,遇到wrapper() 保存到内存中 17 2.@wrapper == fun = wrapper(fun) 18 3.执行wrapper(fun) --> return inner 19 4.return inner ---> fun = inner 20 5.fun = inner 21 6.把fun()放到内存中 22 7.执行fun() -> inner() 23 8.print('666') 24 9.renturn ret --> return s 25 ''' 装饰器执行流程 二、开放封闭原则 关于开放封闭原则,其核心的思想是: 软件实体应该是可扩展,而不可修改的。也就是说,对扩展是开放的,而对修改是封闭的。 因此,开放封闭原则主要体现在两个方面: 对扩展开放

虚函数实现原理

▼魔方 西西 提交于 2019-12-20 02:05:11
转自:https://blog.csdn.net/weixin_40237626/article/details/82313339 前言 C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。 关于虚函数的使用方法,我在这里不做过多的阐述。大家可以看看相关的C++的书籍。在这篇文章中,我只想从虚函数的实现机制上面为大家一个清晰的剖析。 当然,相同的文章在网上也出现过一些了,但我总感觉这些文章不是很容易阅读,大段大段的代码,没有图片,没有详细的说明,没有比较,没有举一反三。不利于学习和阅读,所以这是我想写下这篇文章的原因。也希望大家多给我提意见。 言归正传,让我们一起进入虚函数的世界。 虚函数表 对C++ 了解的人都应该知道虚函数(Virtual Function)是通过一张虚函数表(Virtual Table)来实现的。简称为V-Table。在这个表中,主是要一个类的虚函数的地址表,这张表解决了继承、覆盖的问题,保证其容真实反应实际的函数。这样

Python 之定时器

对着背影说爱祢 提交于 2019-12-19 19:22:53
#引入库 threading import threading #定义函数 def fun_timer():   print('hello timer') #打印输出   global timer #定义变量   timer = threading.Timer(60,fun_timer) #60秒调用一次函数   #定时器构造函数主要有2个参数,第一个参数为时间,第二个参数为函数名   timer.start() #启用定时器    timer = threading.Timer(1,fun_timer) #首次启动 timer.start() Python定时器实例展示。 天津雍博科技有限责任公司 欢迎大家访问www.mon12.com ,崇尚技术,为您提供完美产品,优质服务! 来源: https://www.cnblogs.com/monjeo/p/7777862.html