Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux

Python函数递归和生成器

Python函数递归和生成器

一、什么是递归如果函数包含了对其自身的调用,该函数就是递归的。递归做为一种算法在程序设计语言中广泛应用,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。例如,要计算1-9的9位数字的乘积,直观的算法是1*2*3*4*5*6*7*8*9,如果要计算1-10000的乘积,直观的算法就难于实现出,而递归就可以很简单的实现。请看示例:1 def fa...
Swift之“闭包”的应用

Swift之“闭包”的应用

相信了解swift的,都应该知道,swift舍弃了OC中的block,但是block的应用又比较灵活,作用也很强大。swift中当然不能缺少这样的设计模式,于是推出了闭包,其功能和作用与OC的block有着异曲同工之妙,但是在写法上,差距比较大。本文,主要是来一探“闭包”的使用方法。一:闭包简介 1,闭包也是一个函数,函数是什么?函数就是一段代码块。这个没有什么可纠结的。 2,闭包的使用方法,闭包主要有两种使用方法,1),闭包在方法...
Swift中桥接头文件的建立

Swift中桥接头文件的建立

桥接头文件主要应用于swift和oc的混编。这里有两种创建方式。方法一:适用于项目(swift项目)之前没创建过oc的类,或(oc的项目)swif的类这里以swift项目为例既然没用过就创建一个呗Commond+n然后创建,这是会出来一个提示选择Create Bridging Header就可以了,这样项目中就有这个桥接头文件了。在桥接头文件里直接 import “类名.h”就可以使用了。方式二:适用于任何情况,想怎么玩怎么玩。1)...
Swift封装的无限轮播头视图

Swift封装的无限轮播头视图

此类中代码,是已经封装好的,在外部创建,给其frame和父视图,即可显示。需要注意的地方,就是图片哪里了,在代码中已经写出来了。就是不给demo链接(其实我demo没上传到git上),自己慢慢看代码吧,哈哈,简书看起来代码,还是挺舒服的。import UIKitclass AmonCirHeadView: UIView ,UIScrollViewDelegate{var dataArray:NSArray?;var _scrollView:UIScroll...
Swift中KVO(监听)的使用方法及注意事项

Swift中KVO(监听)的使用方法及注意事项

相信研究swift语言的开发者都多多少少了解或者精通Objective—C语言,熟练掌握Objective—C语言的开发者,在学习swift语言的过程中,是比较快速,而又轻松的。本人就是一位熟练掌握OC语言,后开始研究的swift。在学习swift语言的过程中,笔者建议有OC基础的开发者,在写swift的代码过程中,再写一下OC中的代码,二者相互比较,相信你能找到快速学会swift语言的方法。资深,有耐心和有天赋的开发者,相信能在一...
Swift中UICollectionView的简单用法

Swift中UICollectionView的简单用法

之前写过OC中collectionView的用法,现在再看看swift中collectionView的用法,有兴趣的朋友,可以两者前后比较下区别,swift现在没有稳定下来,语法更新的比较快,但是它核心的一些东西,已经定型了。这些还是靠读者们自己去挖掘吧。总得来说,swift无论是在语法上,还是在其书写内容上,和OC有着千丝万缕的联系,但又不完全一样,有的地方,进行了优化。当然这些都是笔者个人理解,毕竟也是从头开始研究这个语言,可能有些不对的地方,也希望各...
Swift UICollectionView 简单使用

Swift UICollectionView 简单使用

最近要研究下排布的游戏关卡界面的实现,简单做了个UICollectionView的demo。先看最后的效果:下面来看实现的方法把,在Storyboard对应的ViewController中增加一个UICollectionView控件,然后再其中加入一个CollectionViewCell在其中增加一个Label控件注意,下面对这个Cell进行命名,命名成defaultCell, 这样我们UI层面的工作就结束了。代码部分:首先我们需要了解两个类,UIColl...
C++中函数中变量内存分配以及返回指针、引用类型的思考

C++中函数中变量内存分配以及返回指针、引用类型的思考

众所周知,我们在编程的时候经常会在函数中声明局部变量(包括普通类型的变量、指针、引用等等)。同时,为了满足程序功能的需要,函数的返回值也经常是指针类型或是引用类型,而这返回的指针或是引用也经常指向函数中我们自己声明的局部变量。这样,程序在某些情况下就可能存在一定的问题。看似很简单的问题,通过仔细的分析,我们就能够更好的理解C++中内存分配和释放的问题。好,废话不多说,我们进入正题。首先,简单介绍一下程序的内存区域的分配:程序的内存分配①堆区(heap)。这...
Java利用Rxtx进行串口通讯

Java利用Rxtx进行串口通讯

最近在做传感器数据采集的工作,底层是基于Zigbee的无线传感网络,所有数据采集到Zigbee协调器上然后通知上位机数据采集完成,上位机通过USB转串口去读取数据就可以了。那么问题来了,如何进行串口通讯呢?老板说你用Java写个程序好了嘛,用Java写串口程序也是醉了。实验室也没别人写了,所以就让我写了。当我听到要让我用Java写串口通讯程序的时候我本来是拒绝的,然后。。。就没有然后了。。就只能写了。网上看了一下,最后用了一个开源的Java串口通讯库RXT...
JVM内存区域划分

JVM内存区域划分

学习Java不可避免的要学习Java虚拟机,也就是JVM,Java虚拟机规范里面规定了程序运行期间会使用到的运行时数据区,这也是JVM的内存区域划分的模型,应该可以这么理解吧。这其中有一些是随着虚拟机的启动和退出而创建和销毁的,这些区域是线程共享的,另外有一些是跟各个线程绑定的,随着线程的开始和结束而创建和销毁,我们可以称这些区域是线程私有的。根据《Java虚拟机规范Java SE 7版》和《Java虚拟机规范Java SE 8版》的规定,我们可以划分出如...
在Linux上用自己编译出来的coreclr与donet cli运行asp.net core程序

在Linux上用自己编译出来的coreclr与donet cli运行asp.net core程序

先在 github 上签出 coreclr 的源代码,运行 ./build.sh 命令进行编译,编译结果在coreclr/bin/Product/Linux.x64.Debug/ 文件夹中。接着签出 dotnet cli 的源代码,运行 ./build.sh 命令进行编译,编译结果在 cli/scripts/dotnet-cli-build/bin/ 文件夹中。然后将 coreclr 的编译结果文件复制到 dotnet cli 的编译结果文件夹中:cp /...
Java中多态的可拓展性

Java中多态的可拓展性

下面我将以两个例子来充分阐述Java中多态的可拓展性,作为一名优秀的程序员,就必须了解程序的可拓展性,非常利于程序后续的开发。第一个例子:利用电脑的主板来作为例子,就我们所熟悉的电脑的主板,里面是不是有很多模块,网卡,声卡,想要用到这些功能,只能当主板运行起来,再给网卡和声卡供电就可以,但这用软件语言怎么来实现呢?是不是先要主板跑起来,主板再让声卡或者网卡跑起来,但这样做,拓展性不高让声卡和网卡跑起来的操作是重复的,而且有很多模块也具备这样的功能,就单纯让...
Java之多态的使用

Java之多态的使用

首先,什么是多态?我们应该从什么角度来理解多态?其实,我们不妨把多态理解成一种事物的多种存在形态,比如,猫和狗都可以变成动物,而动物又可以变成猫和狗。 为了充分理解多态,我们可以从以下这几个方面来理解多态。 第一、从多态的体现方面:我们使用多态的时候,创建的是父类的引用,开辟的是子类的空间,由于没有开辟父类的空间,所以是父类的引用指向子类对象,并不是真正的父类自己创建了对象,而且父类对象的引用还可以作为函数参数来接收子类对象哦! 第二、多态实现...
Java_final关键字的使用

Java_final关键字的使用

/*final : 最终。作为一个修饰符,1,可以修饰类,函数,变量。2,被final修饰的类不可以被继承。为了避免被继承,被子类复写功能。3,被final修饰的方法不可以被复写。4,被final修饰的变量是一个常量只能赋值一次,既可以修饰成员变量,有可以修饰局部变量。 当在描述事物时,一些数据的出现值是固定的,那么这时为了增强阅读性,都给这些值起个名字。方便于阅读。 而这个值不需要改变,所以加上final修饰。作为常量:常量的书写规范所有字母都大写,...
Java抽象类的使用

Java抽象类的使用

/*当多个类中出现相同功能,但是功能主体不同,这是可以进行向上抽取。这时,只抽取功能定义,而不抽取功能主体。抽象:看不懂。抽象类的特点:1,抽象方法一定在抽象类中。2,抽象方法和抽象类都必须被abstract关键字修饰。3,抽象类不可以用new创建对象。因为调用抽象方法没意义。4,抽象类中的抽象方法要被使用,必须由子类复写起所有的抽象方法后,建立子类对象调用。 如果子类只覆盖了部分抽象方法,那么该子类还是一个抽象类。抽象类和一般类没有太大的不同。该如何描...
C/C++程序通过动态链接库调用Matlab程序

C/C++程序通过动态链接库调用Matlab程序

1MATLAB编译器设置需要设定对应的C++编译器才能编译.m文件生成可供C++调用的库文件。在MATLAB命令行输入:mex –setup;然后继续输入:mbuild –setup,选择已安装的VC编译器。2将MATLAB程序编译成C/C++动态链接库假设存在一个Add.m的文件需要编译成库文件:function C=Add(A,B) C=A+B;end2.1 将MATLAB程序编译成C动态链接库采用mcc编译选项:>&g...
<< 3791 3792 3793 3794 3795 3796 3797 3798 3799 3800 >>