Swift语言基础

swift基础swift简介xcode项目文件语法变量与常量类型安全强制类型转换运算符控制结构if语句switch语句循环结构数组字典函数inout传递和地址传递函数类型函数嵌套结构体和枚举类和对象计算属性构造器和析构器继承swift简介Swift 是一种支持多编程范式和编译式的开源编程语言,苹果于2014年WWDC(苹果开发者大会)发布,用于开发 iOS,OS X 和 watchOS 应用程序。Swift 结合了 C 和 Objective-C 的优点并且不受 C 兼容性的限制。Swift 在 M
分类: 其他 发布时间: 11-18 08:18 阅读次数: 0

操作系统是怎么组织文件的?虚拟文件系统(Virtual File System)

ext2文件系统为例启动块(boot block):大小就是1KB,由pc标准确定。后面的都是块组构成,分为六部分,如图超级块(super block):整个分区的信息,在每个块组都有一份拷贝块组描述符表(gdt):本块的描述信息块位图(block bitmap):显示块是否占用inode位图:占一个块,表示每一个inode是否空闲可用inode表:文件类型,权限等等数据块(data block):常规文件数据,目录信息,符号链接,设备文件stat命令:读取文件的inode信息,然后把i
分类: 其他 发布时间: 11-18 08:18 阅读次数: 0

Linux下自己从0开始动手实现一个shell

源代码/************************************************************************* > File Name: kkbshell.c > Author: liuhao > Mail: [email protected] > Created Time: Mon 13 Sep 2021 07:16:36 PM CST *********************************************
分类: 其他 发布时间: 11-18 08:17 阅读次数: 0

kepp爬虫

网站:https://www.genome.jp//kegg-bin/show_organism?org=??# encoding utf-8# time: 2021/8/18# crawlerfrom time import sleepimport requestsfrom fake_useragent import UserAgentfrom lxml import etreeimport re# otherfrom csv import readerimport pandas
分类: 其他 发布时间: 11-18 08:17 阅读次数: 0

Linux下用rar压缩和解压文件

一.widonds下打包rar文件并上传yum install lrzsz rz test.rar二、下载并安装rar软件2.1 下载mkdir -p /home/oldboy/toolscd /home/oldboy/toolswget http://www.rarlab.com/rar/rarlinux-3.8.0.tar.gz2.2 安装tar zxvf rarlinux-3.8.0.tar.gzcd rarmakemake install 三、rar命令语法将/e
分类: 其他 发布时间: 11-18 08:17 阅读次数: 0

R语言取算术平均值函数

getqmean <- function(x, y) { n <- length(x) sum <- 0 for (i in 1: n) { sum <- sum + x[i] * y[i] } print(sum / sum(y))}
分类: 其他 发布时间: 11-18 08:17 阅读次数: 0

Linux网络模型epoll

epoll是一种I/O事件通知机制,是linux 内核实现IO多路复用的一个实现。IO多路复用是指在一个操作里同时监听多个输入输出源,在其中一个或多个输入输出源可用的时候返回,然后对其进行读写操作Iepoll的核心是3个API,核心数据结构是: 1个红黑树和1个链表epoll_create 创建epollevent对象红黑树双向链表队列epoll_ctl 注册事件把感兴趣的事件添加到红黑树里面epoll_wait 获得可用事件的通知-在工作线程里面epoll_createint epo
分类: 其他 发布时间: 11-18 08:16 阅读次数: 0

阻塞和非阻塞&&同步和异步概念及其区别

阻塞和非阻塞阻塞和非阻塞指的是调用者(程序)在等待返回结果(或输入)时的状态。阻塞调用是指调用结果返回之前,当前线程会被挂起。调用线程只有在得到结果之后才会返回。非阻塞调用指在不能立刻得到结果之前,该调用不会阻塞当前线程。同步和异步同步和异步关注的是消息通信机制 (synchronous communication/ asynchronous communication)。所谓同步,就是在发出一个调用时,在没有得到结果之前,该调用就不返回。但是一旦调用返回,就得到返回值了。换句话说,就是由调用
分类: 其他 发布时间: 11-18 08:16 阅读次数: 0

比手写makefile好用一万倍CMake!

当尝试过写了很多很多的makefile代码因为某些逻辑错误无法修改bug的时候,当因为无法理解文件引用的逻辑时(我深受其害)…makefile?代码引用逻辑就够喝一壶了。Linux下安装cmakesudo apt-get install cmake就用四个cmake基本命令吧# CMakeLists.txt# 指定cmake最小版本cmake_minimum_required(VERSION 3.0)# 生成项目名称project(MyLinuxServerTest)# 包含头文件路
分类: 其他 发布时间: 11-18 08:16 阅读次数: 0

GPL协议和GNU系统

在C++SGI-STL3.3时看到了一个词copyright/* * Copyright (c) 1996-1997 * Silicon Graphics Computer Systems, Inc. * * Permission to use, copy, modify, distribute and sell this software * and its documentation for any purpose is hereby granted without fee, * prov
分类: 其他 发布时间: 11-18 08:16 阅读次数: 0

R语言:方差分析之单因素方差分析和双因素方差分析

方差分析方差分析(Analysis of Variance,ANOVA),是利用样本数据检验两个或两个以上的总体均值之间是否有差异的一种方法;(缘起多个处理问题-即多个因变量)即若所有自变量对应的因变量的均值相等,则意味着自变量对因变量没有影响,没有显著差异散点图观察不能提供充分的证据证明不同行业被投诉的次数之间有显著差异这种差异可能是由于抽样的随机性所造成的常用情况:自变量是分类变量,因变量是数值变量方差分析中常用的基本假定是:正态性:每个总体均服从正态分布,也就是说,对于每一个水
分类: 其他 发布时间: 11-18 08:15 阅读次数: 0

使用这11个代码,可以大大地简化我们的代码。

在这篇文章中,我将与你分享一些关于JS的技巧,可以提高你的JS技能。 1.避免 if 过长 如果判断值满足多个条件,我们可能会这么写: 像这样如果有多个条件,if 条件就会很我,可读性降低,我们可以这
分类: 编程语言 发布时间: 11-18 08:15 阅读次数: 0

fcntl设置非阻塞

#include <fcntl.h>#include <unistd.h>int fcntl(int fd, int cmd, ... /* arg */ );/* 样例 */int flags = fcntl(fd, F_GETFL);flags |= O_NONBLOACK;fcntl(fd, F_SETFL, flags);
分类: 其他 发布时间: 11-18 08:15 阅读次数: 0

C++/C的#pragma参数选项及其解析

每种C和C++的实现支持对其宿主机或操作系统唯一的功能。例如,一些程序需要精确控制超出数据所在的储存空间,或着控制特定函数接受参数的方式。#pragma指示使每个编译程序在保留C和C++语言的整体兼容性时提供不同机器和操作系统特定的功能。编译指示被定义为机器或操作系统特定的,并且通常每种编译程序是不同的。语法:#pragma token_string“token_string”是一系列字符用来给出所需的特定编译程序指令和参数。数字符号“#”必须是包含编译指令的行中第一个非空白字符;而空白字符可以隔开数
分类: 其他 发布时间: 11-18 08:15 阅读次数: 0

汇编语言程序设计(1):栈以及栈的使用

简单的说一说。(栈的特性我在此就不做赘述了,LIFO)CPU提供的栈机制现今的CPU中都有栈的设计。8086CPU提供相关的指令,支持用栈的方式访问内存空间。基于8086CPU的编程,可以将一段内存当作栈来使用。操作:(栈的操作都是一个字,不是字节)入栈:push出栈:pop问题:CPU怎么知道一段内存空间被当作栈使用?执行push和pop的时候,怎么知道哪个单元是栈顶单元?回答:栈段寄存器SS(存放栈的段地址),栈顶指针寄存器SP(存放栈顶的偏移位置)。任意时刻,SS:SP指向栈顶位
分类: 其他 发布时间: 11-18 08:14 阅读次数: 0

Django中间件和CSRF跨站请求攻击

中间件类须继承自django.utils.deprecatiion.MiddlewareMixin类中间件开启中间件# settings.pyMIDDLEWARE = [ 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware',
分类: 其他 发布时间: 11-18 08:14 阅读次数: 0

Django缓存机制cache和token会话存储

Django缓存机制和token存储缓存配置缓存创建缓存数据表并迁移文件到文件Django中使用缓存局部缓存缓存api的使用浏览器缓存策略强缓存协商缓存token生成token基本知识JWTheaderPayloadSignature服务端生成Token加密算法Token如何存储缓存定义:缓存是一类可以更快的读取数据的介质统称,也指其它可以加快数据读取的存储方式。一般用来存储临时数据,常用介质的是读取速度很快的内存比如redis数据库意义:视图渲染有一定成本,数据库的频繁查询过高;所以对于低频变
分类: 其他 发布时间: 11-18 08:14 阅读次数: 0

程序加载过程思考

我用自己的语言描述的,我自己也有点模糊,做个记忆一个可执行文件原来存储在硬盘的一个分区中,运用的是内存管理分段模型,其各个段的数据有其相对地址(相对于其段基址的便宜地址,Linux下可以通过nm命令获得),这是逻辑地址。当程序被加载到内存中时称为进程,因为高速缓冲器cache和其他一些因素的影响,每一个进程自认为占用了内存的几乎所有空间,进程的总地址4GB甚至更多,这个叫做虚拟空间地址。(有时也叫线性地址)其实此时只是加载了系统所需要的进程的一些页(段进一步映射运用分页模型),当一个段(此时其中内存中
分类: 其他 发布时间: 11-18 08:14 阅读次数: 0

分治算法知识点整理

分治法——见名思义,即分而治之,从而得到我们想要的最终结果。分治法的思想是将一个规模为N的问题分解为k个较小的子问题,这些子问题遵循的处理方式就是互相独立且与原问题相同。(可以使用递归)两部分组成:分(divide):递归解决小的问题v治(conquer):然后从子问题的构建原问题的解三个步骤:分解(divide):将原问题分解为若干个规模较小、相互独立,与原问题形式相同的子问题解决(conquer):若子问题规模较小而容易被解决则直接解决,否则递归的解各个子问题合并(combine)
分类: 其他 发布时间: 11-18 08:13 阅读次数: 0

LeetCode 105.从前序和中序遍历序列构建二叉树

目录1.题目2.思路3.c++代码1.题目给定一棵树的前序遍历 preorder 与中序遍历 inorder。请构造二叉树并返回其根节点示例1Input: preorder = [3,9,20,15,7], inorder = [9,3,15,20,7]Output: [3,9,20,null,null,15,7]示例2Input: preorder = [-1], inorder = [-1]Output: [-1]2.思路知识回顾:前序遍历规律:中左右;中序遍历规律:左中右该
分类: 其他 发布时间: 11-18 08:13 阅读次数: 0